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

带缺失值的散点图矩阵相关性(R值)计算问题求助

问题

我想制作一个散点图矩阵,要求上方面板显示散点、下方面板显示相关系数R或R²值。无缺失值时代码运行正常,但存在缺失值时,即便尝试了缺失值处理代码(已注释),仍无法计算R值。我不想因单个缺失值删除整行数据(真实数据集较小),作为R语言新手,希望得到简单易懂的解决方案。

解决方案

问题出在相关系数计算时的缺失值处理逻辑错误,只需调整cor()函数的参数即可解决:

  • 使用cor(x, y, use = "pairwise.complete.obs"),该参数会针对每一对变量,只保留两者都无缺失值的观测来计算相关系数,不会删除整行数据,完美适配小数据集的需求。
  • 之前尝试的na.omit(x, y)写法错误,na.omit()需要传入数据框而非单独的向量,正确写法应为cor(na.omit(data.frame(x,y))),但用use参数更简洁直观。

另外,上方面板的散点图上方的R值计算也需要同步添加缺失值处理,否则有缺失值的散点图上方会显示NA。

修改后的完整代码
# --------------------------------------
# 创建数据集,含缺失值和无缺失值两个版本
# --------------------------------------
Alx <- c(13, 9, 5, 17, 2, 8, 11, 4)
Bex <- c(23, 41, 32, 58, 26, 33, 51, 46)
Dex <- c(7,10,6,4,19,6,15,16)
Gax <- c(43,54,31,28,60,30,43,21)

AlxM <- c(NA, 9, 5, 17, 2, 8, 11, 4)
BexM <- c(23, 41, NA, 58, 26, 33, 51, 46)
DexM <- c(7,10,6,4,19,6,15,NA)
GaxM <- c(43,54,31,28,60,30,43,21)

df <- data.frame(Alx,Bex,Dex,Gax) # 无缺失值的数据集
df_miss <- data.frame(AlxM,BexM,DexM,GaxM)# 含缺失值的数据集

rm(Alx,Bex,Dex,Gax,AlxM,BexM,DexM,GaxM) # 清理临时变量
# --------------------------------------

# --------------------------------------
# 散点图矩阵的上下面板函数
# --------------------------------------
# 上方面板:显示散点和R值
upper.panel<-function(x, y){
  points(x,y, pch=19)
  # 添加缺失值处理参数
  r <- round(cor(x,y, use = "pairwise.complete.obs"), digits=2)
  txt <- paste0("R = ", r)
  usr <- par("usr"); on.exit(par(usr))
  par(usr = c(0, 1, 0, 1))
  text(0.5, 0.9, txt)
}

# 下方面板:显示相关系数R值
panel.cor <- function(x, y){
  usr <- par("usr"); on.exit(par(usr))
  par(usr = c(0, 1, 0, 1))
  # 添加缺失值处理参数
  r <- round(cor(x, y, use = "pairwise.complete.obs"), digits=2)
  txt <- paste0("R = ", r)
  cex.cor <- 0.8/strwidth(txt)
  text(0.5, 0.5, txt, cex = 0.5)
}

# 绘制无缺失值的散点图矩阵
pairs(df[,1:4], lower.panel = panel.cor, 
      upper.panel = upper.panel)

# 绘制含缺失值的散点图矩阵
pairs(df_miss[,1:4], lower.panel = panel.cor, 
      upper.panel = upper.panel)
# --------------------------------------

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:09:22