Я не уверен, как перебирать каждый столбец, чтобы заменить значения NA на среднее значение столбца. Когда я пытаюсь заменить один столбец следующим, он работает хорошо.
Column1[is.na(Column1)] <- round(mean(Column1, na.rm = TRUE))
Код для перебора столбцов не работает:
for(i in 1:ncol(data)){
data[i][is.na(data[i])] <- round(mean(data[i], na.rm = TRUE))
}
значения не заменяются. Может кто-нибудь помочь мне с этим?
mean(x) +rnorm(length(missing(x)))*sd(x)
. Это не будет учитывать корреляции между ошибками (или корреляции измеренных значений), но, по крайней мере, не будет серьезно увеличивать значимость результатов. Лучше было бы получить опыт работы с пакетами, которые обрабатывают вменение пропущенных значений. В основе проблемы немало тонкостей. - person IRTFM   schedule 15.09.2014mean(x)+rnorm(length(missing(x)))*sd(x)
? Когда запускаю, получаюError in missing(x) : invalid use of 'missing'
. Я предполагаю, что намерение состояло в том, чтобы взять среднее из доступных значений для x, а затем добавить rnorm (длина NA) * sd (доступные значения для x). Верный? Мне понравилась линия противозаконного врачебного поведения :-). Я лично ищу быстрый взлом, потому что я работаю с набором данных чашки KDD '98, который имеет более 120 атрибутов с NA. Я бы хотел отбросить большинство из них, и инструкции должны исключить только ›= .995 NA. . . - person Daniel Fletcher   schedule 28.08.2016mean(x, na.rm = T)+rnorm(sum(is.na(x)))*sd(x, na.rm = T)
- person Daniel Fletcher   schedule 28.08.2016rnorm( n=sum(is.na(x)) , mean=mean(x), sd=sd(x) )
будет ближе к рабочему коду. - person IRTFM   schedule 28.08.2016