use*_*590 8 syntax if-statement r
我正在尝试在R中执行以下代码
comments = c("no","yes",NA)
for (l in 1:length(comments)) {
if (comments[l] != NA) print(comments[l]);
}
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误
Error in if (comments[l] != NA) print(comments[l]) : missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
Cat*_*ath 18
检查命令:: NA!=NA
你会得到结果NA
,因此出现错误信息.
您必须使用函数is.na
使您的if
语句工作(通常,使用此函数检查NA
值总是更好):
comments = c("no","yes",NA)
for (l in 1:length(comments)) {
if (!is.na(comments[l])) print(comments[l])
}
[1] "no"
[1] "yes"
Run Code Online (Sandbox Code Playgroud)
你能不能把 if 条件改成这样:
if (!is.na(comments[l])) print(comments[l]);
Run Code Online (Sandbox Code Playgroud)
您只能使用 is.na() 检查 NA 值。