Corrplot Machine $ double.eps缺失值

时间:2014-02-24 22:36:36

标签: r r-corrplot

我想绘制相关图。

features = features[,-2]
features<- scale(features[2:ncol(features)],center=TRUE,scale=TRUE);
correlationmatrix <- cor(features)
corrplot(correlationmatrix, order = "hclust")

直到第3行,一切正常。运行corrplot()时,我收到了:

  

if(min(corr)&lt; -1 - .Machine $ double.eps || max(corr)&gt; 1 + .Machine $ double.eps){:         缺少需要TRUE / FALSE的值

1 个答案:

答案 0 :(得分:8)

这种情况最有可能发生,因为您正在尝试使用缺失值(NA)绘制相关矩阵。

不幸的是,corrplot没有妥善处理这些......

您可以使用其他技术自己绘制值。

相反,我发现了一个简单的黑客攻击。我不建议你使用它,对于我的数据,它工作得很好。您还将失去使用corrplot显示重要测试的能力。

M=cor(values,use="pairwise.complete.obs")
p = M
p[is.na(M)]=0.2 
p[is.na(M)==F]=0
M[is.na(M)]=0
corrplot(M, method="circle", is.corr=T, p.mat=p, sig.level=0.1, order = "FPC")

不幸的是,我无法发布刚刚加入的结果图像,并且没有足够的#stack; flowoverflow信誉&#34;。

enter image description here

希望它有帮助,你或其他有同样问题的人。