Odpowiedzi:
Jak assign()pokazuje odpowiedź Christiana , istnieje sposób na przypisanie w globalnym środowisku. Prostszym, krótszym (ale nie lepszym ... trzymaj się przypisania) sposobem jest użycie <<-operatora, tj
a <<- "new"
wewnątrz funkcji.
assignpreferowane <<-?
<<-przeszuka łańcuch załączników do środowiska globalnego i przypisze do pierwszej pasującej zmiennej, którą znajdzie. Hipotetycznie, jeśli masz funkcję f()zagnieżdżoną w zamknięciu g()i aistnieje w nim g(), to użycie a <<-in f()spowoduje przypisanie do ain g(), a nie do środowiska globalnego. Jednak często tego właśnie chcesz.
Znalazłem rozwiązanie, jak ustawić zmienną globalną w postach na liście mailingowej za pomocą przypisania :
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value