我确信这样做有成语,但我究竟如何使用dplyr将布尔掩码或行选择传递给过滤器操作。
例如,在这里,我想选择id为重复的foo行:
foo$id %>% duplicated %>% filter(foo ??)
我可以使用匿名函数执行此操作,但必须有一个更好的方法:
foo$id %>% duplicated %>% function(x) foo[x,]
答案 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)