如何忽略R中的NA?

时间:2015-09-14 10:04:07

标签: r

我正在进行一些分析,每当找到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

1 个答案:

答案 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
>