我有两个数据框。对于这个问题,我将创建 2 个假的示例数据框:
ppl <- data.frame(
id = c(1123, 5323, 5342, 1234, 6434, 2342),
state = c('ME', 'WY', 'FL', 'MA', 'TN', 'ME'),
name = c('Paul', 'Lisa', 'Simone', 'James', 'Ruby', 'Paul'))
和
ppl_2 <- data.frame(
id = c(1823, 5123, 5842, 1004, 6034, 1342),
state = c('MI', 'TN', 'NM', 'TX', 'OR', 'NH'),
name = c('Fred', 'Ruby', 'Estelle', 'Sylvia', 'Jim', 'Bob'))
我知道为了识别数据框中两列(状态和名称)重复的行,我可以使用:
ppl[duplicated(ppl[, c(2,3)]),]
但是,我不确定如何扩展它来查找两个数据帧之间的重复项。更具体地说,我想确定两者中存在 TN Ruby 的行。
提前谢谢。
我们可以做这样的事情:
library(dplyr)
bind_rows(ppl, ppl_2) %>%
filter(state == "TN" & name == "Ruby") %>%
pull(id)
[1] 6434 5123
这将给出 TN Ruby 的 ID