Yanıtlar:
Christian'ın gösterilere verdiği yanıt olarak assign(), küresel çevreye atamanın bir yolu var. Daha basit, daha kısa (ama daha iyi değil ... atama ile sopa) yolu <<-operatörü kullanmaktır , yani
a <<- "new"
fonksiyonun içinde.
assigntercih edilir <<-?
<<-, küresel ortama kadar kasa zincirini arayacak ve bulduğu ilk eşleşen değişkene atayacaktır. Varsayalım, bir fonksiyon varsa f()bir kapatma iç içe g()ve avar olan g()daha sonra kullanarak, a <<-içinde f()atayacağı aiçinde g()değil küresel ortama. Ancak, çoğu zaman, bu istediğiniz şeydir.
Nasıl atama yoluyla bir posta gönderme posta küresel değişken ayarlamak için bir çözüm buldum :
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value