この投稿 ( 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
が一般的に眉をひそめていることを知っています。しかし、私が知らない他の理由はありますか?スコーピングや遅延評価を台無しにするのではないかと思いますが、よくわかりませんか? このような問題を示すサンプル コードはすばらしいものです。