R:按公共列合并两个数据框
R: Merge two data frames by common columns
我有两个 data.frames、"x" 和 "y"。 "x" 和 "y" 的列数不同。如下:
x
A1 A3 A5 A6
1 a b b a
y
A1 A2 A3 A4 A5 A6 A7
1 9 10 11 9 10 10 10
2 0 6 2 2 8 1 4
3 0 4 0 1 0 0 0
4 12 12 12 12 12 12 11
5 11 11 9 12 12 11 11
6 0 0 0 0 0 1 0
我想创建一个新的 data.frame,其中只有两个 data.frames 的公共列。而这个新 data.frame 的内容仅来自 "y"。最后的 data.frame 应该是这样的:
A1 A3 A4 A6
1 9 11 9 10
2 0 2 2 1
3 0 0 1 0
4 12 12 12 12
5 11 9 12 11
6 0 0 0 1
这些是例子。其实我的真实data.frames有几百个栏目。有谁知道该怎么做?
试试这个:
y[,colnames(y) %in%colnames(x)]
A1 A3 A5 A6
1 9 11 10 10
2 0 2 8 1
3 0 0 0 0
4 12 12 12 12
5 11 9 12 11
6 0 0 0 1
您可以通过 x
和 y
的共同列名对 y
进行索引:
y[,intersect(names(x), names(y))]
# A1 A3 A5 A6
# 1 9 11 10 10
# 2 0 2 8 1
# 3 0 0 0 0
# 4 12 12 12 12
# 5 11 9 12 11
# 6 0 0 0 1
我有两个 data.frames、"x" 和 "y"。 "x" 和 "y" 的列数不同。如下:
x
A1 A3 A5 A6
1 a b b a
y
A1 A2 A3 A4 A5 A6 A7
1 9 10 11 9 10 10 10
2 0 6 2 2 8 1 4
3 0 4 0 1 0 0 0
4 12 12 12 12 12 12 11
5 11 11 9 12 12 11 11
6 0 0 0 0 0 1 0
我想创建一个新的 data.frame,其中只有两个 data.frames 的公共列。而这个新 data.frame 的内容仅来自 "y"。最后的 data.frame 应该是这样的:
A1 A3 A4 A6
1 9 11 9 10
2 0 2 2 1
3 0 0 1 0
4 12 12 12 12
5 11 9 12 11
6 0 0 0 1
这些是例子。其实我的真实data.frames有几百个栏目。有谁知道该怎么做?
试试这个:
y[,colnames(y) %in%colnames(x)]
A1 A3 A5 A6
1 9 11 10 10
2 0 2 8 1
3 0 0 0 0
4 12 12 12 12
5 11 9 12 11
6 0 0 0 1
您可以通过 x
和 y
的共同列名对 y
进行索引:
y[,intersect(names(x), names(y))]
# A1 A3 A5 A6
# 1 9 11 10 10
# 2 0 2 8 1
# 3 0 0 0 0
# 4 12 12 12 12
# 5 11 9 12 11
# 6 0 0 0 1