R 4.1.2中corrplot报type 'list'默认方法未实现错误求助

问题复现
运行环境为R 4.1.2,使用corrplot包绘制带数值标注的相关性图时抛出如下报错:
Error in is.finite(tmp) : default method not implemented for type 'list'
此前尝试将输入的列表类型对象转换为data.frame,但问题没有解决,判断是转换步骤或输入逻辑存在错误。
复现代码如下:
library(corrplot) x<-read.table("corrplot_2.txt") x <- as.data.frame(x) corrplot(x, method="number")
问题根因
corrplot函数的核心输入要求是计算完成的相关系数矩阵,直接传入读入的原始数据集(哪怕转成data.frame格式)完全不符合入参要求,必然触发类型类报错。
修复方案
先基于原始数据集计算相关系数矩阵,再将矩阵传入corrplot即可正常绘图,修正后代码:
library(corrplot) # 读入数据,若文件第一行为列名请补充header=TRUE参数,避免列名被识别为数据值 x <- read.table("corrplot_2.txt", header = TRUE) # 仅保留数值列,避免非数值字段导致相关系数计算失败 x <- x[, sapply(x, is.numeric)] # 计算相关系数矩阵,可通过调整cor的method参数选择pearson/spearman/kendall相关系数 cor_mat <- cor(x) # 传入相关系数矩阵绘图 corrplot(cor_mat, method = "number")
内容的提问来源于stack exchange,提问作者Rafaela
相关产品推荐
相关产品推荐

