这是我第一次发帖,我是 R 新手,所以请帮助我:)
问题
我有 2 个数据框。两个数据框中都存在一些列,但有些列仅存在于 1 个数据框中。我希望识别并保留两个数据框中存在的列,并删除任何 1 个数据框中存在的列。我怎样才能做到这一点?
> df1 <- data.frame(a=c(1,2,3,4,5),b=c(2,4,6,8,10),c=c(3,6,9,12,15),x=c(4,8,12,16,20),y=c(5,10,15,20,25))
> df2 <- data.frame(b=c(1,5,10),c=c(2,6,11),y=c(3,7,12),z=c(4,8,13))
> view(df1)
a b c x y
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
> view(df2)
b c y z
1 2 3 4
5 6 7 8
10 11 12 13
所需输出:
> view(df1)
b c y
2 3 5
4 6 10
6 9 15
8 12 20
10 15 25
> view(df2)
b c y
1 2 3
5 6 7
10 11 12
最佳答案
我们可以使用 intersect
来获取两个数据集中常见的列名称。使用此索引对数据集进行子集化。
nm1 <- intersect(names(df1), names(df2))
df1[nm1]
df2[nm2]
关于r - 从 r 中的 2 个数据帧中删除不常见的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079967/