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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。