我想在我当前的工作空间中找到所有功能,并考虑is.function
用于此目的。
“问题”是is.function
需要一个真正的 R object,而不是对象的字符串名称。
这是我的解决方案,但使用eval(substitute(...))
似乎有点涉及。关于更直接的方式的任何想法,或者这是唯一可以做到的方式?
示例内容
x <- TRUE
y <- 10
foo1 <- function() message("hello world!")
foo2 <- function() message("hello world again!")
查找所有函数对象
wscontent <- ls(all.names=TRUE)
funs <- sapply(wscontent, function(ii) {
eval(substitute(is.function(OBJ), list(OBJ=as.name(ii))))
})
> funs
foo1 foo2 funs wscontent x y
TRUE TRUE FALSE FALSE FALSE FALSE