首页 > 解决方案 > 使用 r 比较两个数据帧

问题描述

我是 R 新手,对于我的问题有任何问题,请提前道歉。所以,我有两个数据框。

我的第一个数据框有一个人员列表和这些人的种族。如下所示(一小部分实际数据):

数据帧_1:

name            ethnicity            
Mario Gonzales  hispanic
James R. Santi  white
A. Williams     asian

我的第二个数据框只有一个人员列表。如下所示(一小部分实际数据)。

数据帧_2:

name
Mark Johnson
A. Williams 
James R. Santi
Kelly Wu

我正在尝试生成一个数据框,列出数据框 2 中的人及其种族(使用数据框 1 中的给定信息)。所以我想要的输出是一个如下所示的数据框:

想要的_data_frame_1:

name            ethnicity
A. Williams     asian
James R. Santi  white

我还想创建另一个具有在数据框 2 中找到的唯一名称的数据框(在数据框 1 中找不到名称。)如下所示:

想要的_data_frame_2:

 name
 Mark Johnson
 Kelly Wu

非常感谢你的帮助。

标签: r

解决方案


您可以使用setdiff.

## Data below
setdiff(input2$name, input1$name)
[1] "Mark Johnson" "Kelly Wu"

数据

input2 = read.table(text="name
'Mark Johnson'
'A. Williams' 
'James R. Santi'
'Kelly Wu'",
header=T, stringsAsFactors=F)

input1 = read.table(text="name            ethnicity
'A. Williams'     asian
'James R. Santi'  white",
header=T, stringsAsFactors=F)

推荐阅读