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
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