我有一个数据框data
,经过几次计算后,最终的数据框df.final
中有一些缺失的值。
在继续对df.final
进行进一步计算之前,我是否最好通过
data[id.na(data)] <- 0
在这里提到如何用R中的0替换NA值?,或者会做
df.final <- df.final[complete.cases(df.final), ] # considering only one's without na
更有益吗?
两者有何不同?
如果您将NA
设置为零,那么对您的计算的影响就好像您测量它并得到零。因此,如果你在七月测量温度,你会得到的结果就好像你在那里下了几天霜。你的平均温度会更低。
如果您设置na.rm=T
或使用complete.cases
,效果就好像从未发生过测量(实际上就是这样)。因此,我们七月的平均温度只会是我们测量的天数的平均值。
如果只有几个孤立的NA值(sum(is.na())
),那么您可能希望将它们全部设置为0(或其他一些合理的值,在本例中 7月的平均温度可能是好的)。
我只会在很少的情况下设置为0(所以我并不关心它是否会扭曲我的测量),或者如果0是一个合理的值(例如,如果我们想要以月为单位的工作经验,NA
很可能意味着"没有经验")。
软件是软的:如果你的数据集足够小,你可以尝试这两种方法,并观察它对你的数据有多大的影响。