Corrplot Machine $ double.eps缺失值

tes*_*goe 2 r r-corrplot

我想绘制一个相关图.

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

直到第3行,一切正常.跑步时corrplot(),我得到:

if(min(corr)<-1 - .Machine $ double.eps || max(corr)> 1 + .Machine $ double.eps){:缺少值需要TRUE/FALSE时出错

Man*_*evi 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")
Run Code Online (Sandbox Code Playgroud)

不幸的是,由于我刚刚加入并且没有足够的"stackoverflow声誉",我无法发布生成的图像.

在此输入图像描述

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