Warum ist die Verwendung von Assign schlecht?

Dieser Beitrag (Lazy Evaluation in R - ist die Zuordnung betroffen?) hat einige Gemeinsamkeiten, aber ich bin mir nicht sicher, ob es meine Frage beantwortet.

Ich habe aufgehört zu benutzenassign als ich das entdeckteapply Familie vor einiger Zeit, wenn auch aus Gründen der Eleganz in Situationen wie dieser:

names.foo <- letters
values.foo <- LETTERS
for (i in 1:length(names.foo))
  assign(names.foo[i], paste("This is: ", values.foo[i]))

welches ersetzt werden kann durch:

foo <- lapply(X=values.foo, FUN=function (k) paste("This is :", k))
names(foo) <- names.foo

Dies ist auch der Grund dafür (http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-turn-a-string-into-a-variable_003f) Laut R-faq sollte dies vermieden werden.

Jetzt weiß ich dasassign wird allgemein verpönt. Aber gibt es noch andere Gründe, die ich nicht kenne? Ich vermute, es könnte mit der Bewertung von Scoping oder Lazy zu Unrecht kommen, bin mir aber nicht sicher? Beispielcode, der solche Probleme demonstriert, wird großartig sein.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage