Мои данные таковы:
train <- data.frame(y=c(1,2,1,1), x1=c(2,4,NA,5), x2=c(8,NA,6,12))
Мне нужно заменить для каждой переменной x отсутствующие значения (NA) на среднее значение этого столбца, но среднее значение должно быть рассчитано с использованием значений этой переменной xкоторые имеют соответствующее значение y, равное значению y строки этого пропущенного значения.
Например: в строке, где NA столбца x1, значение y равно 1, так чтопропущенное значение следует заменить на среднее от 2 до 5 (которые представляют собой значения x1, для которых y также равно 1).
Мой код такой, но среднее значение не является условным:
for(i in 1:ncol(train)){
train[is.na(train[,i]), i] <- mean(train[,i], na.rm = TRUE)
}