当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R assign 为名称分配值


R语言 assign 位于 base 包(package)。

说明

为环境中的名称分配值。

用法

assign(x, value, pos = -1, envir = as.environment(pos),
       inherits = FALSE, immediate = TRUE)

参数

x

以字符串形式给出的变量名称。不进行强制转换,并且将使用长度大于 1 的字符向量的第一个元素,并发出警告。

value

要分配给 x 的值。

pos

在哪里做作业。默认情况下,分配到当前环境。有关其他可能性,请参阅“详细信息”。

envir

要使用的environment。查看具体信息'。

inherits

是否应该检查环境的封闭框架?

immediate

被忽略的兼容性函数。

细节

x 给出的名称没有限制:它可以是非语法名称(请参阅 make.names )。

pos 参数可以指定以多种方式分配对象的环境:作为 -1(默认)、作为正整数(search 列表中的位置);作为搜索列表中元素的字符串名称;或作为 environment(包括使用 sys.frame 访问当前活动的函数调用)。 envir 参数是指定环境的另一种方法,但主要是为了向后兼容。

assign 不调度赋值方法,因此不能用于设置向量、名称、属性等元素。

请注意,对附加列表或 DataFrame 的分配会更改附加副本,而不是原始对象:请参阅 attachwith

调用此函数是因为它的副作用,即将 value 分配给变量 x 。如果未指定 envir,则分配将在当前活动环境中进行。

如果 inheritsTRUE ,则搜索所提供环境的封闭环境,直到遇到变量 x 为止。然后在遇到该变量的环境中分配该值(前提是绑定未锁定:请参阅lockBinding:如果是,则会发出错误信号)。如果未遇到该符号,则在用户工作区(全局环境)中进行分配。

如果 inheritsFALSE ,则分配发生在 envir 的初始帧中,除非现有绑定已锁定或不存在现有绑定且环境已锁定(发出错误信号时)。

例子

for(i in 1:6) { #-- Create objects  'r.1', 'r.2', ... 'r.6' --
    nam <- paste("r", i, sep = ".")
    assign(nam, 1:i)
}
ls(pattern = "^r..$")

##-- Global assignment within a function:
myf <- function(x) {
    innerf <- function(x) assign("Global.res", x^2, envir = .GlobalEnv)
    innerf(x+1)
}
myf(3)
Global.res # 16

a <- 1:4
assign("a[1]", 2)
a[1] == 2          # FALSE
get("a[1]") == 2   # TRUE

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

<-getassign()existsenvironment 的逆。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Assign a Value to a Name。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。