如何在 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

更新於: 2021年11月16日

2K+ 瀏覽量

開啟你的 職業生涯

完成課程並獲得認證

開始學習
廣告