如何合併2個相似的數據幀但具有更重要的一個?合併數據幀並覆蓋值
例如:
數據幀1
Date Col1 Col2
jan 2 1
feb 4 2
march 6 3
april 8 NA
數據幀2
Date Col2 Col3
jan 9 10
feb 8 20
march 7 30
april 6 40
與數據幀1採取優先次序但數據幀2填充坯
DataframeMerge
合併這些由日期Date Col1 Col2 Col3
jan 2 1 10
feb 4 2 20
march 6 3 30
april 8 6 40
編輯 - 解決方案
commonNames <- names(df1)[which(colnames(df1) %in% colnames(df2))]
commonNames <- commonNames[commonNames != "key"]
dfmerge<- merge(df1,df2,by="key",all=T)
for(i in commonNames){
left <- paste(i, ".x", sep="")
right <- paste(i, ".y", sep="")
dfmerge[is.na(dfmerge[left]),left] <- dfmerge[is.na(dfmerge[left]),right]
dfmerge[right]<- NULL
colnames(dfmerge)[colnames(dfmerge) == left] <- i
}
很好的答案,但在代碼中的幾個註釋會使它非常有用。 – Sam
欣賞答案,但我很遺憾地說我忘記提及一個重要的信息,除了日期(關鍵)列我不知道表中的其他列。有些可能會匹配一些可能不會。我想我可以使用名稱(dfrm1)和名稱(dfrm2)之間的匹配來獲取我需要應用代碼的列。 (將x和y附加到col的名字當然) – EvilWeebl
感謝您的幫助,我接受了您的答案並對其進行了擴展,以涵蓋相似列未知的情況。我已經將解決方案添加到了我的問題中,以幫助未來的任何人。 – EvilWeebl