0
我有一個關於合併函數的基本問題。R:按列名合併矩陣
根據我的理解,合併(mat1,mat2)應該按列名合併矩陣,並保留矩陣中存在的矩陣。
我有兩個表(下面的例子)。行名稱不同,但某些列名是相同的。我想繼續保持在普通的列:
MAT1:
B C D E
a x x x x
b x x x x
c x x x x
d x x x x
e x x x x
和MAT2:
B E F G
f y y y y
g y y y y
h y y y y
i y y y y
j y y y y
所以輸出應該是這樣的:
B E
a x x
b x x
c x x
d x x
e x x
f y y
g y y
h y y
i y y
j y y
但是,合併(mat1,mat2)返回:
> merge(test, testt)
[1] B E C D F G
<0 rows> (or 0-length row.names)
我一定在做錯事。有什麼建議?謝謝!
我想你想要'rbind(mat1 [,c(1,4)],mat2 [,c(1,2)])'而不是? – aichao
'merge'不會做你認爲它做的事情。它在表之間執行連接(並且通常與'data.frame's一起使用,而不是與矩陣一起使用)。你的目標可能是用'commoncols <-intersect(colnames(mat1),colnames(mat2)); rbind(mat1 [,commoncols],mat2 [,commoncols])' – nicola
@aichao不,因爲我不想指定哪些列是共同的列。我將這個應用到非常大的表 – arielle