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.