首页 > 解决方案 > 如何在数据框中输出 NA 值的位置?

问题描述

我有以下代码...

pMiss <- function(x){sum(is.na(x))}
missing_values_data <- apply(csv,1,pMiss)

但这只是输出类似...

[1]    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
[2]    0    0    0    0    0    0    0    0   20    0    0    0    0    0    0    0    0
[3]    0    0    0    0   10    0    0    0    0    0    0    0    0    0    0    0    0
[4]    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
[5]    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0

10 和 20 是包含 NA 的行。有没有办法可以输出这些行在数据框中的索引位置,例如 [3,5] 等。

标签: r

解决方案


sapply(df, function(x){which(is.na(x))})

# Data Used: 

df <- data.frame(x1 = c(84.2,105.2,79.2,NA,108.2,79.2,112.2,NA,114.2,92.2),
             x2 = c(138.3,110.3,84.3,45.3,128.3,99.3,NA,124.3,121.3,115.3),
             x3 = as.character(c(138.3,110.3,84.3,45.3,128.3,99.3,100.3,124.3,121.3,115.3)),
             stringsAsFactors = FALSE)

推荐阅读