如何合并两个相似的数据框,但让其中一个更为重要?
例如:
数据框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
}
intersect
函数来更紧凑地确定“常见名称”。ComNams <- intersect(names(df1), names(df2))
- IRTFM