У меня есть следующие образцы данных:
ID GLUC TGL HDL LDL HRT MAMM SMOKE
A 88 NA 32 99 Y NA never
B NA 150 60 NA NA no never
C 110 NA NA 120 N NA NA
D NA 200 65 165 NA yes never
Мне нужно написать функцию, которая заменяет отсутствующие числовые переменные медианным значением числовой переменной. Для символьных переменных мне нужно заменить пропущенные значения значением самой высокой частоты символьной переменной. Функция принимает два аргумента: имя фрейма данных и символьный вектор.
Мой желаемый результат с функцией ниже:
impute (dat=patient, varlist=c("LDL", "HRT", "MAMM"))
LDL HRT MAMM
99 Y yes
165 Y no
120 N yes
165 Y yes
150 Y yes
У меня написаны эти переменные, но я изо всех сил пытаюсь собрать их вместе в функцию.
patient$TGL[which(is.na(patient$TGL))] <- median(patient$TGL, na.rm=TRUE)
patient$TGL[which(is.na(patient$TGL))] <- which.max(patient$TGL, na.rm=TRUE)
Как мне достичь желаемого результата?