我正在进行一些分析,每当找到NA
时,我的循环就会一个接一个地停止。所以我想说,如果我的值不是NA
,那么继续循环。如果是NA
则忽略它并转到下一个。甚至返回NA
。
我试过这个:
x=c(5,4,6,4,2,1,5,NA)
if (x != NA){
y=x+2}
Error in if (x != NA) { : missing value where TRUE/FALSE needed
答案 0 :(得分:5)
x!=NA
既不是TRUE也不是FALSE,而是NA。您可以使用函数is.na
检查某些内容是否为NA:
> x=c(5,4,6,4,2,1,5,NA)
> x!=NA
[1] NA NA NA NA NA NA NA NA
> x==NA
[1] NA NA NA NA NA NA NA NA
> is.na(x)
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
> y <- x[which(!is.na(x))]+2
> y
[1] 7 6 8 6 4 3 7
>