簡體   English   中英

在另一個數據框中用非NA填充NA

[英]Fill in NA with Non-NAs in another dataframe

我有三個帶有兩個變量“ ID”和“名稱”的數據集。 有沒有辦法填充來自另一個數據集的每個數據集中的缺失項,或者使用ID和Name的組合創建一個主數據集?

setA=data.frame(rbind(
                      c("1","Product A"),
                      c("2",NA),
                      c("3",NA),
                      c("4",NA),
                      c("5","Product E")))
names(setA)=c("ID","Name")

setB=data.frame(rbind(
                      c("1","Product A"),
                      c("2",NA),
                      c("3","Product C"),
                      c("4",NA),
                      c("6","Product F")))
names(setB)=c("ID","Name")

setC=data.frame(rbind(
                      c("1",NA),
                      c("2","Product B"),
                      c("3","Product C"),
                      c("4","Product D"),
                      c("6","Product F")))
names(setC)=c("ID","Name")

我試過了,但它兩次列出了ID“ 3”。 我希望NA填寫“產品C”。

merge(setA,setB,by=c("ID","Name"),all=T)

我可以僅合並ID並用非NA替換NA,但想知道是否還有更直接的方法嗎?

謝謝!

我不知道下面的解決方案是否可以推廣,但是根據您的示例,以下代碼可以解決問題(假定名稱對於每個ID至少存在一次且唯一):

setM <- rbind(setA,setB,setC)
setM <- unique(na.omit(setM))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM