基于两列 R 识别数据帧内和数据帧之间的重复行

问题描述 投票:0回答:1

我有两个数据框。对于这个问题,我将创建 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 的行。

提前谢谢。

r dataframe duplicates row
1个回答
0
投票

我们可以做这样的事情:

library(dplyr)

bind_rows(ppl, ppl_2) %>% 
  filter(state == "TN" & name == "Ruby") %>% 
  pull(id)
[1] 6434 5123

这将给出 TN Ruby 的 ID

© www.soinside.com 2019 - 2024. All rights reserved.