如何在 R 数据框中将布尔值列的 NA 值设置为 TRUE?

r programmingserver side programmingprogramming更新于 2025/6/25 22:52:17

处理 NA 值是分析师日常工作中枯燥乏味的一项,因此我们需要将其替换为合适的值。如果在 R 数据框中,我们有一个布尔值列,分别表示 TRUE 和 FALSE 值,而我们只有 FALSE 值,那么我们可能需要将 NA 替换为 TRUE。在这种情况下,我们可以使用单个方括号和 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

相关文章