R语言如何修复:missing value where true/false needed in R

R语言如何修复:missing value where true/false needed in R

在这篇文章中,我们将看到如何在R编程语言中修复需要真/假的缺失值。

为什么会出现这种错误

当我们在 “if 语句 “或 “while 语句 “中把数值与NA(Not available)进行比较时,就会出现 “需要真/假的地方缺失数值 “的错误,因为你向 “if 语句 “或 “while 语句 “传递了一个无效的数值。

例1:使用变量进行修复

如何重现该错误

这里我们会得到错误,因为我们使用了num == NA的语法。我们不能将数值与NA数字进行比较,这种类型的语句(如果条件)总是返回TRUE或FALSE值。

num <- "2"
if (num == NA) {
    print("Number is :", NA)
}else{
    print(num)
}

输出

错误在if (num == NA) {: 缺少值,需要TRUE/FALSE

如何修复该错误

我们需要使用is.na(Value),因为它总是返回TRUE或FALSE。

num <- "2"
if (is.na(num)) {
    print("Number is : NA")
}else{
    print(num)
}

输出

[1] "2"

例2:使用向量进行修复

这里我们会得到一个错误,因为我们使用了 vec[l] != NA 的语法。我们不能将数值与NA数字进行比较,这种类型的语句(If condition)总是返回TRUE或FALSE值。

vec = c(1, 0, NA)
for (l in 1:length(vec)) {
    if (vec[l] != NA) print(vec[l]);
}

输出

Error in if (num == NA) {: missing value where TRUE/FALSE needed

你必须使用函数is.na才能使你的if语句工作。

vec = c(1, 0, NA)
for (l in 1:length(vec)) {
    if (!is.na(vec[l])) print(vec[l])
}

输出

[1] 1
[1] 0

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程