我想将对象的值作为参数传递给函数。强制评估作为参数传递给函数的对象
# This is my object
anObject <- "an_unkown_string"
# I would like to do the equivalent of:
someFunc("an_unkown_string")
# .. by somehow calling on the object containing the string
someFunc(??? (anObject))
例如,下面的示例功能(基于save()
):
someFunc <- function(...) {
names <- as.character(substitute(list(...)))[-1L]
return(names)
}
# Ideally, the output would be:
someFunc(??? (anObject))
[1] "an_unkown_string"
我没有访问和修改someFunc
我曾尝试以下,但没有成功。
someFunc(Name_of_Object)
someFunc(eval(Name_of_Object))
someFunc(evalq(Name_of_Object))
someFunc(force(Name_of_Object))
someFunc(eval(parse(text=Name_of_Object)))
任何帮助表示赞赏。
天才!谢谢!导致这种解决方案的洞察力(或思考过程)是什么? –
除此之外,我可能会使用'do.call'太多。 :-)你想用'anObject'的值调用'someFunc()',所以你需要构造一个调用。如果你给'do.call'一个函数和一个参数列表,它用这些参数调用函数。 – GSee