有没有办法将对象名称传递给do.call()函数?
例如:
#First make a function that will return the name of object itself.
PrintObjectName <- function(obj){
print(deparse(substitute(obj)))
}
data(iris)
PrintObjectName(iris)
[1] "iris" #This is what I want
do.call(what="PrintObjectName", args=list(obj=iris))
#The output is a messy stuff
答案 0 :(得分:6)
您希望在致电alist
时使用do.call
。
alist
处理其参数,就好像它们描述了函数参数一样。所以不评估这些值
do.call(what="PrintObjectName", args=alist(obj=iris))
# [1] "iris"
或者您可以使用quote
do.call(what="PrintObjectName", args=list(obj=quote(iris)))