Jawaban:
Seperti jawaban Christian dengan assign()
menunjukkan, ada cara untuk ditugaskan di lingkungan global. Cara sederhana, lebih pendek (tapi tidak lebih baik ... tetap dengan menetapkan) adalah dengan menggunakan <<-
operator, yaitu
a <<- "new"
di dalam fungsi.
assign
lebih disukai <<-
?
<<-
akan mencari rantai lampiran hingga ke lingkungan global dan menetapkan ke variabel pencocokan pertama yang ditemukannya. Hipotetis, jika Anda memiliki fungsi yang f()
bersarang dalam penutupan g()
dan a
ada di g()
, maka menggunakan a <<-
di f()
akan menetapkan ke a
dalam g()
, bukan ke lingkungan global. Seringkali, inilah yang Anda inginkan.
Saya menemukan solusi untuk cara menetapkan variabel global dalam posting milis melalui assign :
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value