假设e
是一个环境对象。
是否有一种简单的方法可以将e
的内容导入当前环境(根据具体情况创建或覆盖符号)?
答案 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())