为数据框中的所有列创建NA表计数?

时间:2015-11-05 17:47:32

标签: r dplyr

假设我有以下数据框:

df1 <-
  data.frame(
    letters = sample(
      x = c(letters,NA), replace = T, size = 100
    ),
    LETTERS = sample(
      x = c(LETTERS,NA), replace = T, size = 100
    ),
    Numbers = sample(
      x = c(0:9,NA), replace = T, size = 100
    )
  )

我想为每列生成一个NA计数的数据框:

data.frame(NA.letters=sum(is.na(df1$letters)),
           NA.LETTERS=sum(is.na(df1$LETTERS)),
           NA.Numbers=sum(is.na(df1$Numbers)))

有更好的方法吗?当你有很多列时,我的解决方案非常不实用。我想的是dplyr::rowwise(),但是对于列。

1 个答案:

答案 0 :(得分:3)

您可以使用colSums:

colSums(is.na(df1))

letters LETTERS Numbers 
      0       4      10