R 与%>;%一起使用的环境是什么mget
我正在按名称收集一些对象,以保存为RDS中的列表:R 与%>;%一起使用的环境是什么mget,r,magrittr,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, { # d
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())) })
我问这个问题更多的是出于好奇,而不是出于一时的需要……呵呵,所以在阅读了Richard Scriven的答案后,我尝试了每一位家长。frame(n)并发现n=6有效。算了吧,谢谢!新变化:我可以做这样的工作吗<代码>嗯,不管怎样,如果你不知道或者不想扩展答案来涵盖这一点,我可以发布一个新问题。除了
mmget@Frank yea之外,我无法理解这听起来很棘手。如果在那里定义mmet
,它的封闭环境将是全局的,因此它的父级将是基础。环境
的计算需要延迟到管道环境包装器的内部。