Какую среду я должен использовать с%>% 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).

1 ответ

Решение

Вы могли бы сойти с рук parent.env(environment()), как в

with( e, { c("a","b") %>% mget(env=parent.env(environment())) })
Другие вопросы по тегам