Відповіді:
Як відповідь Крістіана з assign()шоу, існує спосіб призначення в глобальному середовищі. Більш простий, коротший (але не кращий ... палиця з присвоєнням) спосіб - це використовувати <<-оператор, тобто
a <<- "new"
всередині функції.
assignвіддають перевагу <<-?
<<-пошук по ланцюжку корпусів до глобального середовища та призначить першу відповідну змінну, яку він знайде. Гіпотетично, якщо у вас функція f()вкладена в закриття g()і aіснує в g(), тоді використання a <<-in f()призначатиметься aв g(), а не в глобальне середовище. Однак, часто цього ви хочете.
Я знайшов рішення, як встановити глобальну змінну в розміщенні списку розсилки за допомогою призначення :
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value