Изготовление некоторых данных
mtcars[ c(4,5,9) , "wt" ] <- NA
Взгляните
head( mtcars)
Перезаписать пропуски со средним значением
mtcars[ is.na( mtcars$wt) , "wt"] <- mean( mtcars$wt , na.rm=T)
Или медианой по группе
mtcars[ is.na( mtcars$wt) &mtcars$am %in%0 , "wt"] <- quantile( mtcars[ mtcars$am%in%0 , "wt"] , .5, na.rm=T)
mtcars[ is.na( mtcars$wt) &mtcars$am %in%1 , "wt"] <- quantile( mtcars[ mtcars$am%in%1 , "wt"] , .5, na.rm=T)
Или решение таблицы данных
library( data.table)
mtcars <- data.table( mtcars)
#median within cyl/am cells
mtcars[ , median := quantile( wt , .5 , na.rm=T) , by= .(cyl, am)]
mtcars[ , impwt := ifelse( is.na( wt) , median , wt) ]