合并两个数据框并替换公共行和col

时间:2018-07-18 07:05:35

标签: r dataframe merge

我有两个数据。框架(假设a,b的大小为3172 * 1323、3067 * 21),我想将它们合并,但是,两者共有21列,并且两者均具有3067行。 我想合并两个数据框,以便替换公共行和公共列,并且最终大小将仅为3172 * 1323 我尝试了合并(a,b,= = 0),但这并不能帮助我获取要查找的数据。 请帮助我

A = read.table(header=TRUE, stringsAsFactors=FALSE, row.names=1, text='
Row.names   P1  P2  P3  P4  P5
R_1 1   2   3   4   5
R_2 6   7   8   9   10
R_3 8   6   4   2   1
R_4 2   4   6   8   10')

B = read.table(header=TRUE, stringsAsFactors=FALSE, row.names=1, text='
Row.names   P2  P5
R_2 NA  2
R_4 1   20')

# merge of A and B
C = read.table(header=TRUE, stringsAsFactors=FALSE, row.names=1, text='
Row.names   P1  P2  P3  P4  P5
R_1 1   2   3   4   5
R_2 6   NA  8   9   2
R_3 8   6   4   2   1
R_4 2   1   6   8   20')

2 个答案:

答案 0 :(得分:1)

您不需要合并。使用我编辑到您的问题中的数据:

A[row.names(B),colnames(B)] <- B
A
#     P1 P2 P3 P4 P5
# R_1  1  2  3  4  5
# R_2  6 NA  8  9  2
# R_3  8  6  4  2  1
# R_4  2  1  6  8 20

(如果您好奇,可以使用rownamesrow.names。)

答案 1 :(得分:0)

谢谢, 我尝试了上述方法,但在我的情况下不起作用,但是,我发现他们在某处使用了以下方法 1.找到交互行或列并将其删除 2.之后,只需使用cbind或rbind