Предполагая, что ваши данные настолько просты (но с большим количеством столбцов) ...
df <- data.frame(a = c(0,1,NA), b = c(1,NA,2), c = c(NA,2,1))
... вы можете запустить mutate_all
из пакета dplyr
, чтобы применить среднее вменение Hmisc квсе столбцы:
library(dplyr)
df %>% mutate_all(.funs = ~Hmisc::impute(.,mean))
a b c
1 0.0 1.0 1.5
2 1.0 1.5 2.0
3 0.5 2.0 1.0
Если есть столбцы, которые вы не хотите или не можете использовать (например, символьные столбцы), вам придется немного изменить код и, вероятно, переключиться на mutate_at
, например
df %>%
mutate_at(.vars = vars(a:c),
.funs = ~Hmisc::impute(.,mean))