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.
assign
tercih 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 a
var olan g()
daha sonra kullanarak, a <<-
içinde f()
atayacağı a
iç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