21

假设我们有以下数据框:

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

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

4

4 回答 4

43

正如 Ben Bolker 所建议的那样,您可以同时使用whichis.na

> which(is.na(dataset1), arr.ind=TRUE)
  row col
4   4   1  # NA is in row 4 and column 1
于 2013-11-10T21:51:21.067 回答
6

tidyverse使用生态系统功能的另一种方法:

> dataset1 %>%
     rowid_to_column() %>%
     filter(is.na(x))
  rowid  x
1     4 NA
于 2019-05-22T18:19:41.743 回答
1

createnewdataset1这是在删除使用中缺少列值的行后形成的dataset1-which(is.na)

   newdataset1<-dataset1[-which(is.na(dataset1$x)),]
于 2017-12-16T05:16:32.120 回答
0

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

或使用 dplyr

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

于 2021-07-24T16:35:56.270 回答