R語言——缺失值自動填補

今天下午考試,兩個鐘頭的案例操作,考了我一個相當出乎意料的問題,那就是有超多超多的缺失值需要處理

R語言——缺失值自動填補

多到神馬程度咧,給親們體會一下

R語言——缺失值自動填補

攏共8000行的訓練集,大概每列都有2400左右的缺失值

在短暫吐槽之後,我在考試當場磨出了一部分算法,勉強趕在結束時間前弄了個答案先交了,回來以後再整理了一下,大概寫成了這樣:

#每行缺失值個數計算

NAq

NAqty

NAStat

R語言——缺失值自動填補

整個8000行裡頭,完全不缺任何值的行只有240,強忍著悲傷進行下一步吧,這裡人為的設了保留85%的數據量

#每行最多能容忍幾個NA值

cumsum(NAStat)/nrow(Now)

Upto85 0.85

NAlim

R語言——缺失值自動填補

#去掉NA值過多的行

Now

R語言——缺失值自動填補

唉~~~沒轍了,照本宣科地搬點教材上的做法,連續值取平均

#用均值自動填充連續值列

Ccols

for (i in Ccols)

{mean

Now[which(is.na(Now[,i])),i]

R語言——缺失值自動填補

但如果分類值填眾數的話,那估計是要歇菜的,所以統一填成Unknown,自成一類吧

#分類項NA填Unknown

T

Fcols

for (i in Fcols)

{levels(Now[,i])

Now[which(is.na(Now[,i])),i]

R語言——缺失值自動填補

混得有點過,但考都考完了,剩下的就聽天由命咯~~


分享到:


相關文章: