获取列的所有 NA 值的行号

Getting the rownumbers for all NA values of a column

我有数据如下:

df <- as.data.frame(c(1,2,NA,4,5))
names(df)[1] <- "first_column"

  first_column
1            1
2            2
3           NA
4            4
5            5

我想获取 first_columnNA 的所有行号,因此 3

我找到了查找其他值的方法,即 which(grepl(2, df$first_column)) 但不是 NA。包括 NA 值显然非常麻烦 ()。 有更简单的方法吗?

有什么想法吗?

which(is.na(df$first_column)==T)

我们可以使用 whichis.na

which(is.na(df))
[1] 3

采用tidyverse方法:

library(tidyverse)

df <- as.data.frame(c(1,2,NA,4,5))
names(df)[1] <- "first_column"

df %>% 
  mutate(second_column = ifelse(is.na(first_column), row_number(), NA))

#>   first_column second_column
#> 1            1            NA
#> 2            2            NA
#> 3           NA             3
#> 4            4            NA
#> 5            5            NA