比方说,我现在有两个数据框
a <- as.data.frame(matrix(0, nrow=5, ncol=3))
a <- a+1
colnames(a) <- c('A1', 'A2', 'A3')
rownames(a) <- paste0('ar_', seq(1:5))
a
A1 A2 A3
ar_1 1 1 1
ar_2 1 1 1
ar_3 1 1 1
ar_4 1 1 1
ar_5 1 1 1
b <- as.data.frame(matrix(0, nrow=5, ncol=4))
b <- b+5
colnames(b) <- c('B1', 'B2', 'B3', 'B4')
rownames(b) <- c('ar_3', 'ar_5', 'br_1', 'br_2', 'br_3')
b
B1 B2 B3 B4
ar_3 5 5 5 5
ar_5 5 5 5 5
br_1 5 5 5 5
br_2 5 5 5 5
br_3 5 5 5 5
大致情况是,他俩在行名中有重复,我想把两个按照行来合并,有重叠的部分直接拼接,独自的行则以0或者NA表示;对于列来说,不考虑重复情况(即假设无重复,全部直接合并),想要得到的结果如下:
c #merged dataframe
A1 A2 A3 B1 B2 B3 B4
ar_1 1 1 1 0 0 0 0
ar_2 1 1 1 0 0 0 0
ar_3 1 1 1 5 5 5 5
ar_4 1 1 1 0 0 0 0
ar_5 1 1 1 5 5 5 5
br_1 0 0 0 5 5 5 5
br_2 0 0 0 5 5 5 5
br_3 0 0 0 5 5 5 5
有没有什么函数可以直接实现这个功能呢,对R相关的函数不是很清楚,不太想自己再去造轮子。
感谢!