如何修复 r:需要 true/false 的缺失值


在 R 中您可能遇到的错误是:

 Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed

当您使用语法x == NA将 R 中if语句中的值与 NA 进行比较时,会发生此错误。

if语句需要 TRUE 或 FALSE 值,因此您应该使用is.na(x)来代替,因为该函数始终返回 TRUE 或 FALSE。

如何重现错误

假设我们尝试迭代 R 中向量中的值列表,并在每次向量中存在 NA 值时打印单词“missing”:

 #define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for (i in 1:length(x)) {
 
 if (x[i] == NA) {
    print(' Missing ')
  }
}

Error in if (x[i] == NA) {: missing value where TRUE/FALSE needed

我们收到错误,因为我们使用了语法x[i] == NA

如何修复错误

我们需要将语法更改为is.na(x),如下所示:

 #define vector with some missing values
x <- c(2, NA, 5, 6, NA, 15, 19)

#loop through vector and print "missing" each time an NA value is encountered
for (i in 1:length(x)) {
 
 if (is. na (x[i])) {
    print(' Missing ')
  }
}

[1] “Missing”
[1] “Missing”

请注意,每当我们在向量中遇到 NA 值时,我们不会收到错误,并且可以打印“缺失”一词。

其他资源

以下教程解释了如何修复 R 中的其他常见错误:

如何修复:强制引入的 NA
如何修复:矩阵上的索引数量不正确
如何修复:更换的物品数量不是更换长度的倍数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注