如何导入环境?

时间:2017-02-01 17:20:18

标签: r

假设e是一个环境对象。

是否有一种简单的方法可以将e的内容导入当前环境(根据具体情况创建或覆盖符号)?

2 个答案:

答案 0 :(得分:2)

循环环境中的事物名称,在全局环境中创建具有相同名称和值的事物:

lapply(names(e),function(n){assign(n,get(n,env=e),env=.GlobalEnv)})

行动中:

> foo = "global foo"
> e = new.env()
> e$foo="from env"
> e$bar = 1234
> foo
[1] "global foo"
> lapply(names(e),function(n){assign(n,get(n,env=e),env=.GlobalEnv)})
[[1]]
[1] "from env"

[[2]]
[1] 1234

> foo
[1] "from env"

如果环境中的东西是环境,这可能会破坏......我真的没想过......

请注意,这似乎是一种困难的方式,而list2env(as.list(e), .GlobalEnv)看起来就像是在一起。

答案 1 :(得分:1)

根据nrussel的评论,我认为我正在寻找的是

list2env(as.list(e), envir = environment())