如何修复 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 中的其他常见错误: