0
这似乎非常像一个愚蠢的问题:我不明白为什么我在下面的示例中得到错误。在返回值传递给save()作为参数之前,R不应该评估rnorm()吗?为什么它能与一个对象,而不是一个函数一起工作?如何在R中传递函数返回值作为参数
> ls()
character(0)
> save(rnorm(30), file="/tmp/RtmppMIFFg/data.RData")
Error in save(rnorm(30), file = "/tmp/RtmppMIFFg/data.RData") :
object ‘rnorm(30)’ not found
> a <- rnorm(30)
> save(a, file="/tmp/RtmppMIFFg/data.RData")
> class(rnorm(30))
[1] "numeric"
> class(a)
[1] "numeric"
“save”('...')的第一个参数取得要保存的对象的名称。为了保存结果,您必须为其分配一个名称。 – lmo
'save'中的关键代码行是'names < - as.character(substitute(list(...)))[ - 1L]',这意味着任何传递给'...'的值都被转换为一个字符串最终会和'get'一样被用于实际检索对象。 – Benjamin