如何使用 R 中的均值和标准差替换缺失值?

How to replace missing values using Mean and Standard Deviation in R?

我有一个数据集

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

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

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

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