R / dplyr:如何将过滤函数与流水线%>%运算符结合使用?

时间:2014-07-25 15:27:51

标签: r dplyr

我确信这样做有成语,但我究竟如何使用dplyr将布尔掩码或行选择传递给过滤器操作。

例如,在这里,我想选择id为重复的foo行:

foo$id %>% duplicated %>% filter(foo ??)

我可以使用匿名函数执行此操作,但必须有一个更好的方法:

foo$id %>% duplicated %>% function(x) foo[x,]

1 个答案:

答案 0 :(得分:3)

问题是当dplyr真的要用于表格式对象时,你试图向下发送向量,所以你应该发送整个data.frame(假设' s foo是什么。例如

library(dplyr)
foo <- data.frame(id=sample(1:5, 25, replace=T), val=runif(25))
foo %>% filter(!duplicated(id))

如果您真的只想要ID,请添加

foo %>% filter(!duplicated(id)) %>% select(id)