如何将 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.