这篇文章 (R中的惰性求值 - assign 受到影响吗?) 涵盖了一些共同点,但我不确定它是否回答了我的问题。
相当长一段时间以来,我已经停止使用 assign
,而是转而使用 apply
系列,尽管纯粹出于类似于这种情况的优雅原因:
names.foo <- letters
values.foo <- LETTERS
for (i in 1:length(names.foo))
assign(names.foo[i], paste("This is: ", values.foo[i]))
可以被替换为:
foo <- lapply(X=values.foo, FUN=function (k) paste("This is :", k))
names(foo) <- names.foo
这也是(http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-turn-a-string-into-a-variable_003f) R-faq提到应该避免使用的原因。
现在,我知道assign
通常不受欢迎。但是还有其他我不知道的原因吗? 我怀疑它可能会影响作用域或惰性评估,但我不确定。如果有演示此类问题的示例代码,将非常好。
x
的复制,我怀疑您的数据分析也不会有很大进展。 - cbeleites unhappy with SX