You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用corrplot绘制相关矩阵时出现类型不兼容错误求助

解决corrplot绘制相关矩阵的错误问题

错误根源

你遇到的Can't combine ï.. 和 school错误,是几个问题叠加导致的:

  • corrplot输入理解错误:它需要的是相关系数矩阵,而非原始数据框或分组后的tibble,直接传原始数据会因非数值列触发类型冲突报错。
  • 数据结构混乱:
    • 存在无意义的乱码列ï..(全为NA)
    • 大量非数值列(school、state等字符列,pred_ranking这类全空字符串列)
    • 部分数值列仍为字符型(比如weekly_newcases_per100k)
  • 多余分组操作:group_by后未做聚合计算,返回的分组tibble不仅无用,还会干扰后续处理。

修正步骤

1. 清理数据并转换数值列

先删除无效列,将所有应为数值的字符列转为数值类型:

# 清理无效列+转换数值列
data_clean <- data_complete %>%
  select(-ï.., -pred_ranking, -actual_ranking) %>%  # 删除乱码列和全空列
  mutate(
    positivity_rate = as.numeric(positivity_rate),
    weekly_newcases_per100k = as.numeric(weekly_newcases_per100k)
  )

2. 筛选数值列并计算相关系数矩阵

corrplot仅识别数值型相关矩阵,因此先筛选数值列,再计算相关系数(用use = "complete.obs"跳过NA值):

# 筛选数值列并计算相关矩阵
numeric_cols <- select(data_clean, where(is.numeric))
cor_matrix <- cor(numeric_cols, use = "complete.obs")

3. 用corrplot绘制矩阵

将计算好的相关矩阵传入corrplot即可:

corrplot(cor_matrix)

完整修正代码

data_complete <- data[!(data$positivity_rate=="N/A"),]

# 数据清理+转换
data_clean <- data_complete %>%
  select(-ï.., -pred_ranking, -actual_ranking) %>%
  mutate(
    positivity_rate = as.numeric(positivity_rate),
    weekly_newcases_per100k = as.numeric(weekly_newcases_per100k)
  )

# 计算相关矩阵并绘图
numeric_cols <- select(data_clean, where(is.numeric))
cor_matrix <- cor(numeric_cols, use = "complete.obs")
corrplot(cor_matrix)

内容的提问来源于stack exchange,提问作者AC100000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 03:50:32