4

有没有办法将对象名称传递给 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
4

1 回答 1

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)))
于 2014-01-31T04:48:58.980 回答