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

What environment should I use with %>% mget

我正在按名称收集一些对象以在 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)。

你可能会逃脱 parent.env(environment()),如

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