如何使用 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
我有一个数据集
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