我应该使用%>%mget来使用什么环境

时间:2017-04-21 16:25:52

标签: r magrittr

我按名称收集一些对象,以便在RDS中保存为列表:

A = 1
B = 2
mget(c("A","B"))

如果我想管道......

library(magrittr)
c("A","B") %>% mget                    # nope
c("A","B") %>% mget(env = globalenv()) # ok

但如果我在某个环境中工作而且我不想重新输入其名称......

e = new.env()
e$a = 1
e$b = 2
with(e, {
  # do some stuff, then...
  c("a","b") %>% mget
})

我假设我应该输入%>% mget(env = something),但无法弄明白(e除外)。

1 个答案:

答案 0 :(得分:3)

您可能可以使用parent.env(environment()),例如

with( e, { c("a","b") %>% mget(env=parent.env(environment())) })