开发者

How to show indexes of NAs?

I have the piece to display NAs, but I can't figure it out.

try(na.fail(x))
> Error in na.fail.default(x) : missing values in object
# display NAs
myvector[is.na(x)]
# returns
NA NA NA NA

The only thing I get from this the length of the NA vector, which is actually not too helpful when the NAs where caused by a bug in my code that I am trying to track. How can I get the index of NA element(s) ?

I also tried:

subset(x,is.na(x))

which has the same effect.

EDIT:

y <- complete.cases(x)
x[!y]
# just r开发者_运维技巧eturns another
NA NA NA NA


You want the which function:

which(is.na(arr))


is.na() will return a boolean index of the same shape as the original data frame.

In other words, any cells in that m x n index with the value TRUE correspond to NA values in the original data frame.

You can them use this to change the NAs, if you wish:

DF[is.na(DF)] = 999

To get the total number of data rows with at least one NA:

cc = complete.cases(DF)
num_missing = nrow(DF) - sum(ok)


which(Dataset$variable=="") will return the corresponding row numbers in a particular column


R Code using loop and condition :

# Testing for missing values

is.na(x) # returns TRUE if x is missing

 y <- c(1,NA,3,NA)

 is.na(y) 

 # returns a vector (F F F T)

 # Print the index of NA values

 for(i in 1:length(y)) {
  if(is.na(y[i])) {
   cat(i, ' ')
  }
 }

Output is :

Click here

Also :

which(is.na(y))
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜