當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。