根据 "AT LEAST ONE" 共现列表过滤数据框

Filter a data frame according to a list for "AT LEAST ONE" cooccurrence

我从一个数据框开始,然后列出类似的列表。

df <- data.frame(name = c("Benjamin", "Benjamin", "Benjamin", "Benjamin", "Benjamin", "Gary", "Gary", "Gary", "Gary", "Gary", "Maria", "Maria", "Maria", "Maria", "Maria", "Maria"),

                 sport = c("Lacrosse", "Billiards", "Football (US)", "Basketball", "Baseball", "Football (International)", "Baseball", "Golf", "Volleyball", "Archery", "Chess", "Tennis", "Gymnastics", "Parkour", "Dodgeball", "Paintball"))

 

test <- c("Billiards", "Tennis", "Paintball")

我想弄清楚如何通过 test 列表中的值过滤 df 数据框,这样它只会 return Benjamin 和 Maria,因为只有这两个人的观察结果包括 test 列表中的一项运动。

您可以使用子集命令来完成:

df_sub <- subset(df, sport %in% test)

如果您只想要这两个名字,您可以进一步使用:

unique(df_sub$name)