【问题标题】:percentage of missing data in multiple variables in RR中多个变量中缺失数据的百分比
【发布时间】:2021-07-18 16:41:09
【问题描述】:

我有一个缺少数据的数据集。我发现有 6 个变量 缺少数据。我想检查 percentage of data 但是我使用了 mean is.na 但是我不确定这是否正确,我知道有一种更简单的方法可以检查这一点而不是使用重复的代码,如下所示:

问题是,获取多个变量中缺失数据的百分比的最佳代码是什么?

PS。我希望它看起来像我拥有的​​删除列的删除列代码

--------代码-------------------- -------------

mean(is.na(TrainDataSet$KF6 ))
mean(is.na(TrainDataSet$KF9 ))
mean(is.na(TrainDataSet$KF10 ))
mean(is.na(TrainDataSet$F1 ))
mean(is.na(TrainDataSet$T2 ))
mean(is.na(TrainDataSet$ST7 ))

#Delete columns with missing data from TrainingSet

TrainDataSet <- TrainDataSet[ , -c(11, 14 , 15 , 21 , 28, 54)]

我收到所有列的响应,请仅针对上述 6 列提供解决方案**(KF6、KF9、KF10、F1、T2、ST7)**

【问题讨论】:

  • 这能回答你的问题吗:stackoverflow.com/q/33512837/6851825
  • 您的解决方案显示所有列。我的问题是只显示选定的列。我相信,我的编码是正确的,但我想简化它。
  • 尝试colMeans(is.na(airquality[c("Solar.R", "Wind")])),即使用您的数据colMeans(is.na(TrainDataSet[c("KF6", "KF9", "KF10", "F1", "T2", "ST7")]))
  • 顺便说一句,建议在此站点上包含示例数据,以供其他人用来尝试和验证解决方案。您可以 1) 使用标准数据集,例如 airquality(具有 NA),2) 将 dput() 与您的数据的一些代表性子集一起使用。这会生成其他人可以用来创建数据对象的精确副本的代码,3) 提供生成假数据的代码,例如TrainDataSet = data.frame(ok = 1:3, KF6 = c(1:2, NA), KF9 = c(NA, NA, "a"))

标签: r data-mining percentage missing-data


【解决方案1】:
colMeans(is.na(airquality))

     Ozone    Solar.R       Wind       Temp      Month        Day 
0.24183007 0.04575163 0.00000000 0.00000000 0.00000000 0.00000000

如果你只想要某些列,你可以使用:

colMeans(is.na(airquality[c("Solar.R", "Wind")]))
#colMeans(is.na(airquality[, 2:3]))   # equivalent by column position
   Solar.R       Wind 
0.04575163 0.00000000 

或者,使用 dplyr,您可以使用 summarize(across... 将代码应用于每个指定的列:

library(dplyr)
airquality %>% summarize(across(c(Solar.R, Wind), ~mean(is.na(.x))))

     Solar.R Wind
1 0.04575163    0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2022-01-14
    • 2021-04-22
    • 2013-01-14
    • 1970-01-01
    相关资源
    最近更新 更多