complete.cases()和data[is.na(data)] <- 0的结果有什么不同?

  • 本文关键字:data 结果 cases is na complete
  • 更新时间 :
  • 英文 :


我有一个数据框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很可能意味着"没有经验")。

软件是软的:如果你的数据集足够小,你可以尝试这两种方法,并观察它对你的数据有多大的影响。

相关内容

最新更新