当然是一个非常基本的问题,但我没有答案:
我有一个函数向量:
func1 <- function(u) u
func2 <- function(u) NA
func3 <- function(u) 1
funcs = c(func1, func2, func3)
我使用sapply
遍历每个函数,我想找到一个函数command
来检索函数的名称:
res=sapply(funcs, function(f){
command(f)
})
那么res
就是:
c("func1","func2","func3")
答案 0 :(得分:1)
虽然无法使用c创建func的名称,但这里有一个方便的功能,用于创建保留名称的 funcs :
cn <- function(...)
{
# call c() on parameters supplied, adding names
cnames <- sapply(as.list(substitute(list(...)))[-1L],as.character)
out <- c(...)
names(out) <- cnames
return(out)
}
funcs = cn(func1, func2, func3)
答案 1 :(得分:1)
这种方法怎么样:
flist<-ls(patt='func*')
flist[1]
[1] "func1"
do.call(flist[1],list(5))
# 5