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