【问题标题】:How to replace missing values using Mean and Standard Deviation in R?如何使用 R 中的均值和标准差替换缺失值?
【发布时间】:2019-09-29 14:52:52
【问题描述】:

我有一个数据集

X   Y   Z 
22  44  66
NA  67  89
42  45  98
NA  98  77
NA  63  33
65  54  78
89  67  90
87  78  83
NA  55  56
61  11  50
67  45  90
NA  90  43
90  43  76

现在,我想将 X 列中的 NA 值替换为“mean+StandardDeviation”和“mean-StandardDevaitaion”,这太随机了。 有人可以为此建议一个代码吗?

【问题讨论】:

  • 抱歉,您的意思是要随机分配 NA 值 mean + stand. devmean - stand. dev
  • 需要分栏吗?按行?按组?
  • 是的,我想随机分配[mean + stand. dev] 或 [mean - 立场。 dev] (X 列的平均值和标准)到 X 列中的空值

标签: r mean standard-deviation


【解决方案1】:

您可以生成值并随机分配值。 一个例子:

x <- c(22,NA,42,NA,NA,65,89,87,NA,61,67,NA,90)
x_mean <- mean(x, na.rm = T)
x_sd <- sd(x, na.rm = T)

values <- c(x_mean + x_sd, x_mean - x_sd)

set.seed(42)
n <- sum(is.na(x))

x[is.na(x)] <- sample(values, n, TRUE)
x
[1] 22.00000 89.52298 42.00000 89.52298 41.22702 65.00000 89.00000 87.00000 41.22702 61.00000
[11] 67.00000 89.52298 90.00000

【讨论】:

  • 更简单:sample(values, n, TRUE).
  • @RuiBarradas 好主意,更新了答案
  • @shrutyam 当someone answers你的问题时该怎么办。
猜你喜欢
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 2018-02-05
  • 2013-07-22
  • 2012-03-27
  • 1970-01-01
相关资源
最近更新 更多