我该如何列出某个R文件中的所有函数,类似于以下操作:
list = list.all.functions(file.name, alphabetical = TRUE, ...)
其中list
是一个字符串向量,包含file.name
中函数的名称。
如何列出R文件中所有函数及其参数的方法? 的解决方案对我没有输出(因为我不关心参数,所以我提了一个新问题)。
编辑
文件allometry.R
从以下开始:
#==========================================================================================#
#==========================================================================================#
# Standing volume of a tree. #
#------------------------------------------------------------------------------------------#
dbh2vol <<- function(hgt,dbh,ipft){
vol = pft$b1Vol[ipft] * hgt * dbh ^ pft$b2Vol[ipft]
return(vol)
}#end function dbh2ca
#==========================================================================================#
#==========================================================================================#
我的主要代码看起来像这样
rm(list=ls())
here = "/directory/of/allometry.R/"
setwd(here)
is_function = function (expr) {
if (! is_assign(expr))
return(FALSE)
value = expr[[3]]
is.call(value) && as.character(value[[1]]) == 'function'
}
function_name = function (expr)
as.character(expr[[2]])
is_assign = function (expr)
is.call(expr) && as.character(expr[[1]]) %in% c('=', '<-', 'assign')
file_parsed = parse("allometry.R")
functions = Filter(is_function, file_parsed)
function_names = unlist(Map(function_name, functions))
function_names
会得到NULL作为结果。 - Manfredoallometry.R
输入文件中将<<-
更改为<-
(或将<<-
添加到向量c('=', ...
中,但您99.9%的情况下不需要这样的全局声明。它们几乎总是一种糟糕的编码风格)。 - Patrick Roocks