在数据框中找到值为NA的行索引

时间:2013-11-10 21:45:29

标签: r dataframe na

假设我们有以下数据框:

>  dataset1
      x
  1   1
  2   2
  3   3
  4   NA
  5   5

我想提出一个R命令来计算包含“NA”值的1列数据帧的行索引。更具体地,在上面的数据集1示例中,这样的命令将返回4 - 因为'NA'出现在数据帧的第4行中。我怎样才能做到这一点?谢谢!

4 个答案:

答案 0 :(得分:24)

根据Ben Bolker的建议,您可以同时使用whichis.na

> which(is.na(dataset1), arr.ind=TRUE)
  row col
4   4   1  # NA is in row 4 and column 1

答案 1 :(得分:0)

创建newdataset1,这是从dataset1删除缺少列值的行后形成的表格 使用-which(is.na)

   newdataset1<-dataset1[-which(is.na(dataset1$x)),]

答案 2 :(得分:0)

使用tidyverse生态系统中的功能的替代方法:

> dataset1 %>%
     rowid_to_column() %>%
     filter(is.na(x))
  rowid  x
1     4 NA

答案 3 :(得分:0)

此代码返回数据框,其中仅包含 your_dataframe 中具有空值的行 your_dataframe[unique(which(is.na(your_dataframe), arr.ind=TRUE)[,1]),]

或使用 dplyr

your_dataframe %>% dplyr::setdiff(., na.omit(.))