Я пытаюсь заполнить недостающие значения, случайно выбранные из столбца. Например, для переменной «яблоко» данные выглядят как (1, 2, 3, NA), тогда я хочу, чтобы NA произвольно вменялось в (1,2,3). Я придумал следующий код, но я пытаюсь сделать так, чтобы R вменяет из соответствующей колонки, а не весь набор данныхвменять отсутствующие значения из соответствующего столбца
random.imp <- function (a){
missing <- is.na(a)
n.missing <- sum(missing)
a.obs <- a[!missing]
imputed <- a
imputed[missing] <- sample (a.obs, n.missing, replace=TRUE)
return (imputed)
}
train.num<- random.imp (train.num)
Я думаю, что есть что-то не так с кодом после sample
, и любые комментарии действительно помогут!
Спасибо, но это дало тот же результат - это, кажется, не вменяя из колонки, но из всего набора данных ! Например, для данных, которые я проверил, исходные данные были (1, 2, 0, NA), но после запуска кода он был (1, 2, 2000, NA) (2000 был помещен из другого столбца). – song0089
ОК, в этом случае вам нужно использовать apply для запуска функции colwise - код, измененный выше – Troy