Làm cách nào để hợp nhất 2 khung dữ liệu tương tự nhưng có một khung có tầm quan trọng lớn hơn?Hợp nhất các khung dữ liệu và ghi đè các giá trị
Ví dụ:
Dataframe 1
Date Col1 Col2
jan 2 1
feb 4 2
march 6 3
april 8 NA
Dataframe 2
Date Col2 Col3
jan 9 10
feb 8 20
march 7 30
april 6 40
hợp nhất các bằng Date with dataframe 1 chụp ưu tiên nhưng dataframe 2 chỗ trống điền
DataframeMerge
Date Col1 Col2 Col3
jan 2 1 10
feb 4 2 20
march 6 3 30
april 8 6 40
EDIT - GIẢI PHÁP
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
}
câu trả lời hay, nhưng một vài ý kiến khác trong mã sẽ làm cho nó rất hữu ích. – Sam
Đánh giá cao câu trả lời nhưng tôi xin lỗi khi nói rằng tôi đã quên đề cập đến một phần thông tin quan trọng, ngoài cột ngày (khoá) tôi sẽ không biết các cột khác trong bảng. Một số có thể phù hợp với một số có thể không.Tôi cho rằng tôi chỉ có thể sử dụng một kết hợp giữa tên (dfrm1) và tên (dfrm2) để lấy các cột mà tôi cần để áp dụng mã của bạn? (phụ thêm x và y vào tên col của khóa học) – EvilWeebl
Cảm ơn sự giúp đỡ, tôi đã lấy câu trả lời của bạn và mở rộng trên nó để trang trải khi các cột tương tự chưa được biết. Tôi đã thêm giải pháp cho câu hỏi của mình để giúp mọi người trong tương lai. – EvilWeebl