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


R list2env 從列表中構建或添加到環境


R語言 list2env 位於 base 包(package)。

說明

從命名的 list x 中,創建一個包含所有列表組件作為對象的 environment,或從 x 中創建 “multi-assign” 到預先存在的環境中。

用法

list2env(x, envir = NULL, parent = parent.frame(),
         hash = (length(x) > 100), size = max(29L, length(x)))

參數

x

list ,其中 names(x) 不得包含空 ( "" ) 元素。

envir

environmentNULL

parent

(對於 envir = NULL 的情況):父框架又名封閉環境,請參閱 new.env

hash

(對於 envir = NULL 的情況):指示創建的環境是否應使用哈希的邏輯,請參閱 new.env

size

(在envir = NULL, hash = TRUE的情況下):哈希大小,請參閱new.env

細節

對於大輸入來說,這將非常慢,除非在環境中使用散列。

環境必須具有唯一命名的條目,但命名列表不需要:如果列表具有重複名稱,則它是具有所使用名稱的最後一個元素。空名稱會引發錯誤。

environment ,如果 envir 參數是 NULL 則新創建(如 new.env ),否則更新的環境 envir 。由於環境永遠不會重複,因此參數 envir 也會更改。

例子

L <- list(a = 1, b = 2:4, p = pi, ff = gl(3, 4, labels = LETTERS[1:3]))
e <- list2env(L)
ls(e)
stopifnot(ls(e) == sort(names(L)),
          identical(L$b, e$b)) # "$" working for environments as for lists

## consistency, when we do the inverse:
ll <- as.list(e)  # -> dispatching to the as.list.environment() method
rbind(names(L), names(ll)) # not in the same order, typically,
                           # but the same content:
stopifnot(identical(L [sort.list(names(L ))],
                    ll[sort.list(names(ll))]))

## now add to e -- can be seen as a fast "multi-assign":
list2env(list(abc = LETTERS, note = "just an example",
              df = data.frame(x = rnorm(20), y = rbinom(20, 1, prob = 0.2))),
         envir = e)
utils::ls.str(e)

作者

Martin Maechler

也可以看看

environmentnew.envas.environment;此外,assign

(語義)“inverse”:as.list.environment

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 From A List, Build or Add To an Environment。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。