如何编写一个可估算缺少的数字和字符值的函数?

时间:2019-03-10 21:30:57

标签: r imputation

我有以下示例数据:

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)

我如何达到我想要的结果?

0 个答案:

没有答案