【问题标题】:Wrong number of NAs showed after removing certain amount去除一定数量后显示错误数量的 NA
【发布时间】:2017-03-04 00:03:39
【问题描述】:

我对 R 很陌生,在尝试将数据集中的值随机设置为 NA 时,我有点卡住了,无法真正找到问题,也许这里有人可以提供帮助?真的很感激。

所以我只是在 R 中尝试使用 ChickenWeight 数据集,并希望将变量权重中 10% 的值设置为缺失。但是,当我之后查看 NA 表时,并没有丢失 10%,但比这少得多,我就是不明白为什么?

这是我的代码:

`data <- ChickWeight
p.mis <- length(data$weight)/10
missings <- data$weight[sample(data$weight, p.mis, replace = F)]
data[missings,1] <- NA
table(is.na(data$weight)) `

应该是大约 58 个 NA,看到 data$weight 的长度是 578,但它只显示大约 35 个 NA,我做错了什么?

【问题讨论】:

  • 你应该不更换样品,所以replace = TRUE
  • @PaulH 我认为 replace=FALSE 没问题
  • 你说得对,我猜我在睡觉。
  • 您也可以使用missForest包中提供的prodNA功能。这是一个小代码sn-p:temp&lt;-prodNA(x = as.data.frame(data$weight), noNA=0.1) -------- data$weight=temp$data$weight``

标签: r na


【解决方案1】:

您使用的索引将不起作用。你需要的是:

data <- ChickWeight
p.mis <- length(data$weight)/10
missings <- sample(length(data$weight), p.mis, replace = F)
data[missings,1] <- NA
table(is.na(data$weight))
FALSE  TRUE 
  521    57

【讨论】:

  • 哇,看起来好简单,我现在觉得有点傻,哈哈,非常感谢您的快速回复!
猜你喜欢
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
相关资源
最近更新 更多