如何计算数据集中的空单元格?

时间:2019-07-17 17:32:03

标签: r dataframe

我一直在尝试确定整个数据集中的空单元格数量。

我使用了sum(is.na()),但是没有用。它给出了sum(complete.cases())的补充结果,给出/显示了完整的行(没有任何空单元格)。我也尝试过sum(dat$exampleColumn != "")。但是,我想要所有空单元格的数量。有人有建议吗?

示例数据

 Age  ZipCode  Smoke  Activity 
  25    13020    No   3x week
  35    08740    Yes  NULL
  15    NULL          5x week
  42             Yes  
  14    42859    N/A  2x week

在此示例中,只有三个空单元格。我想达到这个值。

A snapshot of the dataset after uploading to R.

Output of dput

1 个答案:

答案 0 :(得分:1)

complete.cases()函数计算缺少值的案例,但是提供的dat中没有。首先,我们必须将其放入一种我们可以阅读的格式:

dat <- read.csv(text=" Age,ZipCode,Smoke,Activity 
  25,13020,No,3x week
  35,08740,Yes,NULL
  15,NULL,,5x week
  42,,Yes,
  14,42859,N/A,2x week", as.is=TRUE)

所有情况都是完整的,因为没有缺失,即NA值:

sum(!complete.cases(dat))
# [1] 0

我们想要数据中的空白数,而不是带有空白的个案数:

sum(dat=="")
# [1] 3
which(dat=="", arr.ind=TRUE)
#      row col
# [1,]   4   2
# [2,]   3   3
# [3,]   4   4

但是此数据将具有挑战性,因为流浪空白字符“”将被读取为非空白字段。

以后,请在R中创建数据,然后使用dput(dat)将其粘贴到您的问题中:

dat <- 
structure(list(Age = c(25L, 35L, 15L, 42L, 14L), ZipCode = c("13020", 
"08740", "NULL", "", "42859"), Smoke = c("No", "Yes", "", "Yes", 
"N/A"), Activity = c("3x week", "NULL", "5x week", "", "2x week"
)), class = "data.frame", row.names = c(NA, -5L))

我们不能确定这正是您的数据的样子,因为不容易识别由空格分隔的空格,并且字符串可能会作为因素存储。