如何在 R 中使用隨機值填充單個列的缺失值?


為了使用隨機值填充 R 中單個列的缺失值,我們可以使用 Hmisc 包中的 impute 函式。

例如,如果我們有一個名為 的資料框,其中包含一個名為 C 的列,該列有一些缺失值,那麼我們可以使用以下命令隨機填充這些缺失值:

df$C<-with(df,impute(C,"random"))

示例 1

以下程式碼片段建立了一個示例資料框:

x<-sample(c(NA,2,5),20,replace=TRUE)
df1<-data.frame(x)
df1

建立了以下資料框:

   x
1  NA
2  NA
3   2
4   2
5   2
6  NA
7  NA
8  NA
9   2
10  5
11 NA
12 NA
13 NA
14  2
15  2
16 NA
17  5
18  5
19  5
20 NA

要載入 Hmisc 包並在 x 中隨機填充缺失值,請將以下程式碼新增到上述程式碼片段中:

library(Hmisc)
df1$x<-with(df1,impute(x,"random"))
df1

輸出

如果您將以上所有程式碼片段作為單個程式執行,它將生成以下輸出:

   x
1  2
2  5
3  2
4  2
5  2
6  2
7  2
8  5
9  2
10 5
11 2
12 5
13 2
14 2
15 2
16 2
17 5
18 5
19 5
20 2

示例 2

以下程式碼片段建立了一個示例資料框:

y<-sample(c(NA,rnorm(3)),20,replace=TRUE)
df2<-data.frame(y)
df2

建立了以下資料框:

      y
1   0.1912368
2   0.1912368
3   NA
4   0.1912368
5  -0.8921644
6   NA
7  -0.8921644
8  -0.8921644
9   0.3934629
10  NA
11  NA
12  0.3934629
13  0.1912368
14  0.3934629
15  0.3934629
16  0.1912368
17 -0.8921644
18  0.3934629
19  0.1912368
20  0.1912368

要隨機填充 y 中的缺失值,請將以下程式碼新增到上述程式碼片段中:

df2$y<-with(df2,impute(y,"random"))
df2

輸出

如果您將以上所有程式碼片段作為單個程式執行,它將生成以下輸出:

     y
1   0.1912368
2   0.1912368
3   0.1912368
4   0.1912368
5  -0.8921644
6   0.3934629
7  -0.8921644
8  -0.8921644
9   0.3934629
10  0.1912368
11 -0.8921644
12  0.3934629
13  0.1912368
14  0.3934629
15  0.3934629
16  0.1912368
17 -0.8921644
18  0.3934629
19  0.1912368
20  0.1912368

更新於: 2021-11-11

675 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.