相交数据帧
问题描述:
我有两个数据帧具有相同的列数但不同的行数。相交数据帧
例如
df1
name1 name2 name3
a A B G
b D A R
c F T Q
d Y W A
e G Y D
df2
name1 name2 name3
a A B C
b D A I
c A T G
e G Y D
f E T G
g A C T
我dataframes比这个例子更大。有没有简单的方法从第一个数据框中删除第二个数据框中不存在的行?我有rownames删除行,所以输出应该是:
DF1
name1 name2 name3
a A B G
b D A R
c F T Q
e G Y D
d
辗转行,因为它不是在第二个数据帧。
答
您可以比较rownames并选择这些行。
df1[which(rownames(df1) %in% rownames(df2)),]
name1 name2 name3
a A B G
b D A R
c F T Q
e G Y D
+0
是的,这只是计算想要的东西。如果你想改变数据帧,使用'df1 = df1 [which(rownames(df1)%in%rownames(df2)),] ' – G5W
使用set函数'intersect',你可以做'df1 [intersect(rownames(df1),rownames(df2)),]'。 – lmo
[如何加入(合并)数据帧(内部,外部,左侧,右侧)?](https://stackoverflow.com/questions/1299871/how-to-join-merge-data-frames-inner -outer-left-right) – polka