将中间输出分配给临时变量作为 dplyr 管道的一部分

2023-12-03

问:在 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(使用前将#替换为@)

将中间输出分配给临时变量作为 dplyr 管道的一部分 的相关文章

随机推荐