我有一个数据框data
,经过多次计算后,最终的数据框df.final
中有一些缺失值。
在继续进行df.final
的进一步计算之前,我最好将所有缺失值设为零
data[id.na(data)] <- 0
如此处所述 How do I replace NA values with zeros in R?,或者会做
df.final <- df.final[complete.cases(df.final), ] # considering only one's without na
更有益吗?
两者有何不同?
答案 0 :(得分:2)
如果将NA
设置为零,那么对计算的影响就好像您测量它并且为零。因此,如果您在7月份测量温度,您将获得结果,好像您在那里度过了几个寒冷的日子。你的平均温度会更低。
如果您设置na.rm=T
或使用complete.cases
,效果就好像测量从未发生过(实际情况就是如此)。因此,我们7月份的平均温度仅为我们衡量的天数的平均值。
如果您只有一些孤立的NA值(sum(is.na())
),那么您可能希望将它们全部设置为0(或其他一些合理的值,在此示例中<7月的平均温度可能会很好。)
如果只有极少数(因此我并不关心它会使我的测量结果偏差)或者零是一个合理的值(例如,如果我们想要几个月的工作经验,我只会设置为零,{{1可能意味着“没有经验”)。
软件很软:如果您的数据集足够小,您可以尝试两者并观察它对您的数据的影响程度。