问:在 R dplyr 管道中,如何将一些中间输出分配给临时变量以便在管道中进一步使用?
我下面的方法有效。但它分配到全局框架中,这是不可取的。一定有更好的方法,对吧?我认为涉及注释行的方法会得到预期的结果。没有骰子。很困惑为什么这不起作用。
df <- data.frame(a = LETTERS[1:3], b=1:3)
df %>%
filter(b < 3) %>%
assign("tmp", ., envir = .GlobalEnv) %>% # works
#assign("tmp", .) %>% # doesn't work
mutate(b = b*2) %>%
bind_rows(tmp)
a b
1 A 2
2 B 4
3 A 1
4 B 2
这确实not在全局环境中创建一个对象:
df %>%
filter(b < 3) %>%
{
{ . -> tmp } %>%
mutate(b = b*2) %>%
bind_rows(tmp)
}
如果您使用的话,这也可以用于调试. ->> tmp
代替. -> tmp
或将其插入管道:
{ browser(); . } %>%
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)