【发布时间】:2015-06-09 19:37:34
【问题描述】:
在 R 中,我有一个函数列表(模拟策略)。例如:
a <- function(x){
return(x)
}
b <- function(y){
return(y)
}
funclist <- list(a,b)
我想编写一些代码来返回每个函数的名称。通常,对于我会使用的功能:
as.character(substitute(a))
但这不适用于列表,因为它只会返回列表名称(如预期的那样)。然后我尝试了 lapply:
> lapply(X = funclist,FUN = substitute)
Error in lapply(X = funclist, FUN = substitute) :
'...' used in an incorrect context
但得到上述错误。
理想情况下我会得到(lapply 解决方案):
[[1]]
[1] "a"
[[2]]
[1] "b"
甚至(应用解决方案):
[1] "a" "b"
【问题讨论】:
-
如前所述,问题只能通过将列表元素与全局环境中定义的所有函数进行比较来解决。请注意,可能有多个匹配项。您应该改变产生这种需求的方法。
-
@Roland 我在尝试创建可重现的示例时可能过于简单化了。以上编辑
-
我已经看到了。它不会改变我的评论。创建列表时,您应该只命名列表元素。否则,没有好的解决方案,你需要在这个问题之前改变你正在做的事情。
标签: r