Этот пост (Ленивая оценка в R - влияет ли назначение?) Охватывает некоторые общие точки, но я не уверен, что он отвечает на мой вопрос.
Я прекратил использование 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
обычно осуждается. Но есть ли другие причины, о которых я не знаю? Я подозреваю, что это может испортить обзор или ленивую оценку, но я не уверен? Пример кода, который демонстрирует такие проблемы, будет отличным.