如何在 R 中合併資料框後,使用非 NA 的其他值填充缺失值?
要在 R 中合併資料框後使用非 NA 的其他值填充缺失值,我們可以按照以下步驟操作:
首先,建立兩個資料框。
然後,根據兩個資料框之間的公共列合併它們。
之後,將 NA 值替換為其他值。
示例
建立第一個資料框
讓我們建立一個如下所示的資料框:
ID<-1:10 x<-sample(1:100,10) df1<-data.frame(ID,x) df1
輸出
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):
ID x 1 1 28 2 2 50 3 3 13 4 4 43 5 5 48 6 6 49 7 7 52 8 8 54 9 9 72 10 10 32
建立第二個資料框
讓我們建立一個如下所示的資料框:
ID<-1:15 y<-sample(1:10,15,replace=TRUE) df2<-data.frame(ID,y) df2
輸出
執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):
ID y 1 1 2 2 2 9 3 3 10 4 4 8 5 5 10 6 6 7 7 7 9 8 8 4 9 9 2 10 10 9 11 11 3 12 12 5 13 13 10 14 14 7 15 15 1
合併資料框
使用 merge 函式根據 ID 列合併 df1 和 df2:
ID<-1:10 x<-sample(1:100,10) df1<-data.frame(ID,x) ID<-1:15 y<-sample(1:10,15,replace=TRUE) df2<-data.frame(ID,y) merge(df1,df2,all=TRUE,by="ID") DF<-merge(df1,df2,all=TRUE,by="ID") DF
輸出
ID x y 1 1 28 2 2 2 50 9 3 3 13 10 4 4 43 8 5 5 48 10 6 6 49 7 7 7 52 9 8 8 54 4 9 9 72 2 10 10 32 9 11 11 NA 3 12 12 NA 5 13 13 NA 10 14 14 NA 7 15 15 NA 1
將 NA 替換為其他值
使用 is.na 函式將 DF 中的 NA 替換為點 (.),如下所示:
ID<-1:10 x<-sample(1:100,10) df1<-data.frame(ID,x) ID<-1:15 y<-sample(1:10,15,replace=TRUE) df2<-data.frame(ID,y) merge(df1,df2,all=TRUE,by="ID") DF<-merge(df1,df2,all=TRUE,by="ID") DF[is.na(DF)]<-"." DF
輸出
ID x y 1 1 28 2 2 2 50 9 3 3 13 10 4 4 43 8 5 5 48 10 6 6 49 7 7 7 52 9 8 8 54 4 9 9 72 2 10 10 32 9 11 11 . 3 12 12 . 5 13 13 . 10 14 14 . 7 15 15 . 1
廣告