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.
assignlebih 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 aada di g(), maka menggunakan a <<-di f()akan menetapkan ke adalam 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