假设我们有一些人做不同的活动 .
data <- data.frame(person=c('A','A','A','B','B','B','C','C'), activity=c(1,2,3,1,2,3,1,2))
我想过那些只进行“相关活动”的人过滤数据,其中相关活动由另一个载体定义 .
relevant_activities <- c(1,2)
因此,一个人的活动 Value 必须是相关活动的一个子集 .
预期结果:
person activity
1 C 1
2 C 2
我试过这样的事情,没有成功:
library(dplyr)
data %>%
group_by(person) %>%
filter(all(relevant_activities %in% activity))
2 回答
我们可以用
all
换行这是一个
data.table
的解决方案或者使用数据表上的键: