답변:
크리스천이 assign()
보여준 대답에서 볼 수 있듯이, 지구 환경에 할당 할 수있는 방법이 있습니다. 더 간단하고 더 짧은 (그러나 더 나은 ... 할당하지 않는) 방법은 <<-
연산자 를 사용하는 것 입니다.
a <<- "new"
함수 내부.
assign
선호 <<-
하는가?
<<-
는 인클로저 환경을 글로벌 환경까지 검색하여 찾은 첫 번째 일치 변수에 할당합니다. 가설 적으로, 당신은 함수가있는 경우 f()
폐쇄에 중첩 g()
과 a
존재 g()
후 사용 a <<-
에 f()
할당됩니다 a
에 g()
없는 지구 환경에. 그러나 종종 이것은 당신이 원하는 것입니다.
assign을 통해 메일 링리스트 게시 에서 전역 변수를 설정하는 방법에 대한 해결책을 찾았습니다 .
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value