过滤包含列表值的行

Filter rows that contain values from a list

我正在使用 RStudio,我有一个包含候选人列表的数据框,以及一个包含每个投票地点和候选人的所有选票的数据框。

我只想提取包含此列表中候选人投票的行。

示例:

然后我想创建一个仅包含“列表”的候选人和选票的新数据框:

这个例子是一个简化。我的数据库包含超过 30.000 个“候选人”

提前致谢

我们可以在base R

中使用subset
subset(Votes, Candidate %in% List$Candidate)

您可以将两个数据框合并 merge():

merge(df1, df2, by = "Candidate", all.x = TRUE)

或等效

dplyr::left_join(df1, df2, by = "Candidate")

#   Candidate Number_of_Votes
# 1         A             124
# 2         B              52
# 3         D              62
# 4         G              67

数据
df1 <- structure(list(Candidate = c("A", "B", "D", "G")), class = "data.frame", row.names = c(NA, -4L))
df2 <- structure(list(Candidate = c("A", "B", "C", "D", "E", "F", "G"),
Number_of_Votes = c(124L, 52L, 13L, 62L, 33L, 7L, 67L)), class = "data.frame", row.names = c(NA, -7L))