Answers:
正如克里斯蒂安(Christian)回答assign()
的那样,在全球环境中存在一种分配方法。一种更简单,更短(但不是更好...坚持分配)的方法是使用<<-
运算符,即
a <<- "new"
在函数内部。
assign
首选<<-
?
<<-
将在全局环境中搜索机柜链,并将其分配给找到的第一个匹配变量。假设,如果您有一个f()
嵌套在闭包中g()
且a
存在于中的函数g()
,则使用a <<-
in f()
将分配给a
in g()
,而不是全局环境。通常,这就是您想要的。
我找到了一种解决方案,该解决方案用于如何通过assign在邮件列表发布中设置全局变量:
a <- "old"
test <- function () {
assign("a", "new", envir = .GlobalEnv)
}
test()
a # display the new value