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