如何將 R 資料框中布林列的 NA 值設定為 TRUE?


處理 NA 值是對分析員來說一項乏味且幾乎每天都在做的任務,因此我們需要用適當的值替換它。如果在 R 資料框中,我們有一個布林列表示 TRUE 和 FALSE 值,並且我們只有 FALSE 值,那麼我們可能希望用 TRUE 替換 NA 值。在這種情況下,我們可以使用單個方括號和 is.na 將所有 NA 值設定為 TRUE。

示例

set.seed(999)
S.No.<-1:20 Won<-sample(c(FALSE,NA),20,replace=TRUE) df1<-data.frame(S.No.,Won)
df1

輸出

S.No. Won
1 1 FALSE
2 2 NA
3 3 FALSE
4 4 FALSE
5 5 FALSE
6 6 NA
7 7 FALSE
8 8 NA
9 9 NA
10 10 NA
11 11 FALSE
12 12 FALSE
13 13 NA
14 14 FALSE
15 15 FALSE
16 16 FALSE
17 17 NA
18 18 NA
19 19 FALSE
20 20 FALSE

將 Won 列中的 NA 值設定為 TRUE −

df1["Won"][is.na(df1["Won"])]<-TRUE df1

輸出

  S.No. Won
1  1   FALSE
2  2   TRUE
3  3   FALSE
4  4   FALSE
5  5   FALSE
6  6   TRUE
7  7   FALSE
8  8   TRUE
9  9   TRUE
10 10  TRUE
11 11  FALSE
12 12  FALSE
13 13  TRUE
14 14  FALSE
15 15  FALSE
16 16  FALSE
17 17  TRUE
18 18  TRUE
19 19  FALSE
20 20  FALSE

我們來看另一個示例 −

示例

 線上演示

Group<-sample(1:4,20,replace=TRUE) Hot<-sample(c(FALSE,NA),20,replace=TRUE) df2<-data.frame(Group,Hot)
df2

輸出

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

將 Hot 列中的 NA 值設定為 TRUE −

df2["Hot"][is.na(df2["Hot"])]<-TRUE df2

輸出

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

更新日期: 2020-10-08

768 瀏覽次數

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.