我有兩個數據幀,包含重複列data1
和data2
。我現在正在運行for循環,每個循環將data1中的一列與data2中的整列合併。例如r:在沒有公共列的情況下合併數據的有效方法
數據1:
1 1 3 4 4
2 5 2 4 2
2 2 8 8 0
數據2
1 4 5 4 5
2 9 3 4 5
2 7 4 8 0
columns 1 and 4
在data1
和data2
重複。對於第一個循環,它合併
1
2
2
與data2
1 4 5 4 5
2 9 3 4 5
2 7 4 8 0
所以期望的結果是
1 4 5 4 5
2 9 3 4 5
2 7 4 8 0
然後,它前進到second column
1
5
2
一個第二它data2
1 4 5 4 5
2 9 3 4 5
2 7 4 8 0
合併期望的結果將是
1 1 4 5 4 5
5 2 9 3 4 5
2 2 7 4 8 0
我的想法是使用combine
或merge
功能,但是這兩個功能都沒有達到預期的輸出
for(i in 1:dim(data[2])){
datam_merge<- merge(data1[i], data2)
}
任何建議表示讚賞!
是重複列總是在兩個數據集相同的位置(如在你的例子)?然後你可以簡單地比較它們,然後只是'cbind'。像'indx < - colSums(data2 == data1)!= nrow(data2); cbind(data2,data1 [,indx])'。另外,你使用'merges'這個術語的方式對我來說沒有意義,而不是合併重複的列,你可以忽略其中的一個並繼續前進,爲什麼要合併它們? –