Я пытаюсь заменить некоторые отсутствующие значения в моих данных на средние значения из аналогичной группы.
Мои данные выглядят следующим образом:
   X   Y
1  x   y
2  x   y
3  NA  y
4  x   y
И я хочу, чтобы это выглядело так:
  X   Y
1  x   y
2  x   y
3  y   y
4  x   y
Я написал это, и он работал
for(i in 1:nrow(data.frame){
   if( is.na(data.frame$X[i]) == TRUE){
       data.frame$X[i] <- data.frame$Y[i]
   }
  }
Но мой data.frame составляет почти полмиллиона строк, а инструкции for/if довольно медленные. Я хочу что-то вроде
is.na(data.frame$X) <- data.frame$Y
Но это приводит к ошибке несоответствия размера. Кажется, должна быть команда, которая делает это, но я не могу найти ее здесь в SO или в списке справки R. Любые идеи?
