R 参数中的运算符

Operator in R argument

R 编程中的<-、<< - 和- >> 有什么区别?

我已经尝试通过Google和Whosebug寻找答案,但仍然无法得到答案。

<<-<- 都是赋值运算符,但它们有细微的差别。

<- 仅适用于使用它的本地环境,因此如果您使用它在函数内部分配变量,则该变量在该函数外部将不可用。

如果您在函数内部使用 <<- 来声明一个新变量,其名称未在其他任何地方使用过,它将在全局环境中创建该变量。如果您使用它来分配给函数内的现有变量(或任何包含您的函数的函数),它将被分配给现有变量。

从函数内部分配给全局环境几乎总是一个坏主意。如果你绝对从函数内部写入变量,最好使用assign将变量写入另一个持久环境。

local_assign <- function() {a <- 1;}
global_assign <- function() {b <<- 1;}

local_assign()
global_assign()
a
# Error: object 'a' not found
b
# [1] 1