回答:
クリスチャンの答えがassign()
示すように、地球環境に割り当てる方法があります。より単純で、より短い(しかし、より良い...割り当てに固執する)方法は、<<-
演算子 を使用することです。
a <<- "new"
関数内。
assign
優先されるの<<-
ですか?
<<-
は、エンクロージャーのチェーンをグローバル環境まで検索し、最初に一致した変数に割り当てます。仮に、f()
クロージャに入れ子にされた関数がg()
あり、にa
存在する場合、in g()
を使用a <<-
するf()
と、グローバル環境a
でg()
はなく、in に割り当てられます。ただし、これが必要な場合もあります。
assignを介してメーリングリストの投稿にグローバル変数を設定する方法の解決策を見つけました。
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value