cor.test.default(x = mat[ i], y = mat[ j], ...) 中的错误:有限观察不足

Error in cor.test.default(x = mat[, i], y = mat[, j], ...) : not enough finite observations

我查看了 Google 和 Whosebug 以找到解决我的问题的方法。我现在已经尝试了一些东西,但似乎没有任何效果。

我正在尝试创建语言特征的相关箱线图。对于每个功能(总共 36 个),在 Excel 中有一个表示说话者使用它的时间,一个 0 表示说话者没有使用它的时间。

有 41 位演讲者,none 他们使用了所有 36 个特征,尽管最低分数是 8。我想分析我的数据以查看哪些特征相关,从而找出哪些特征可以预测使用其他功能。

我一直在 R 中使用 corrplot。这是我一直在使用的命令:

cor_mat <- df_analysis %>%
    replace(., is.na(.), 0) %>%
    cor(method = "spearman")

cor_residuals <- cor.mtest(cor_mat, conf.level = .95)

但是,我收到一条错误消息:

Error in cor.test.default(x = mat[, i], y = mat[, j], ...) : not enough finite observations

有谁知道为什么以及如何纠正它?事实上,我真正需要知道的是问题所在,而且我可能可以从那里自己弄清楚。如果您也有解决方案,我将不胜感激!

非常感谢!

您可以像这样理想地定义corrplot:

df_cor <- cor(df_analysis)
corrplot(df_cor, type = "full", order = "hclust",
         outline.color = "white", hc.method = "ward",
         pch.cex = .5, show.diag = TRUE,
         p.mat = cor_residuals$p, insig = "blank", sig.level = .01,
         addrect = 20, tl.srt = 36, tl.cex = .8, tl.col = "black",
         col = rev(lacroix_palette("PassionFruit", 8, "continuous")))

您的数据集中有几列没有变化;因此这些变量的相关性都是 NA,这把事情搞砸了。

which(apply(df_analysis,2,sd)==0)
## [1] a' c[h]lach bheag [3] a' c[h]loich bhig [14] a' b[h]ord bheag 
##                     1                     3                    14 
##       [26] nan su[ ]l       [27] nan sul[ ] 
##                    26                    27 

我通过设置 options(error=recover) 和 运行 查看错误发生的位置来解决这个问题(当错误发生时,此设置会让您进入 browser/debug 模式)。更直接地说,我 应该 已经完成 corrplot(cor_mat),这有助于为 NA 值打上问号 ...

image()heatmap(as.matrix(df_analysis),Rowv=NA,Colv=NA, scale="none", margins=c(10,8)) 有助于查看您的原始数据。