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

前端之家收集整理的这篇文章主要介绍了将中间输出分配给临时变量作为dplyr管道的一部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问:在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
pipeR是一个扩展管道功能而不添加不同管道的软件包(正如magrittr所做的那样).要分配,您传递一个变量名称,在括号中用〜引用作为管道中的元素:
library(dplyr)
library(pipeR)

df %>>%
  filter(b < 3) %>>%
  (~tmp) %>>% 
  mutate(b = b*2) %>>%
  bind_rows(tmp)
##   a b
## 1 A 2
## 2 B 4
## 3 A 1
## 4 B 2

tmp
##   a b
## 1 A 1
## 2 B 2

虽然语法不是非常具有描述性,但pipeR是very well documented.

猜你在找的设计模式相关文章