使用带有NA-continaing数据的ggpairs

Dre*_*een 9 r ggplot2

ggpairsGGally包中看起来非常有用,但是当NA数据集中的任何地方存在时它似乎失败:

#require(GGally)
data(tips, package="reshape")
pm <- ggpairs(tips[,1:3]) #works just fine

#introduce NA
tips[1,1] <- NA
ggpairs(tips[,1:3])
> Error in if (lims[1] > lims[2]) { : missing value where TRUE/FALSE needed
Run Code Online (Sandbox Code Playgroud)

我没有看到任何处理NA值的文档,并且ggpairs(tips[,1:3], na.rm=TRUE)(不出所料)解决方案不会更改错误消息.

我有一个数据集,其中可能有10%的值NA随机分散在整个数据集中.因此na.omit(myDataSet)将删除大部分数据.有没有办法解决?

Ali*_*Ali 4

GGally类似的一些函数ggparcoord()支持通过missing=[exclude,mean,median,min10,random]参数处理 NA。然而不幸的是,情况并非如此ggpairs()

您可以做的就是用对数据的良好估计来替换 NA,您期望它ggpair()会自动为您完成。有一些很好的解决方案,例如用行均值中位数甚至最近点替换它们(注意最近句子单词上的 4 个超链接!)。

  • 我认为在真实数据缺失的情况下发明数据点是非常危险的。你提到的技术在 R 中很容易 - 当替换数量相对于观察总数较小时,我们也许能够摆脱它们 - 但是当替换数量变得相当大时,就像在我的数据集中一样,你提到的技术相当于数据伪造。 (3认同)
  • 但我的原始数据确实有零! (2认同)
  • 我真的很抗拒在我的数据集中插入虚假数据。在科学中,编造数据(即使你很清楚这样做)真的非常不好。 (2认同)