我要从数据中随机选择一个值来填充NA。随机选择的值将根据其频率进行加权。例如,我有5个值:
[1,1,2,3,NA]
我有50%的机会将其替换为1,将2的机会替换为25%,将3的机会替换为25%,这有意义吗?
我编写了以下函数以在更大的数据集中执行此操作,并在报表中使用它,并且我想正确地引用此插补方法,因为我猜测它已经存在并已被命名。
my.imputer <- function(x) {
x[which(is.na(x))] <- sample(na.omit(x),
length(x[which(is.na(x))]),
replace = TRUE,
prob = sort(sapply(na.omit(x),
function(y) table(y) / length(na.omit(x)))))
}