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

R中计算不同猪只体重相关矩阵时cor()报需数值型错误的求助

R计算不同个体重复测量值相关性的报错解决方法

报错原因

  • 你写的group_by(Pig)逻辑不符合需求:当前是长表结构,按猪编号分组后每组只有单头猪的体重序列,无法实现跨猪的相关性计算
  • 传递给cor()的分组数据仍包含猪编号列,该列属于分组标识字段,非纯数值运算序列,直接触发类型错误

解决思路

要计算不同猪只的体重相关性,需要先将长表转换为宽表,保证每一行对应同一个测量时间点、每一列对应一头猪的体重序列,再对宽表做相关性计算即可,dietox数据集自带统一的测量时间字段Time,可以直接用来做宽表转换的行标识。

实现代码

# 加载依赖包
library(geepack)
library(dplyr)
library(tidyr)

# 导入数据集,保留所需字段
data(dietox)
df <- dietox[, c("Time", "Weight", "Pig")]

# 长表转宽表
df_wide <- df %>%
  pivot_wider(names_from = Pig, values_from = Weight) %>%
  select(-Time)

# 计算相关矩阵,参数指定成对缺失值处理规则
cor_matrix <- cor(df_wide, use = "pairwise.complete.obs")

# 输出结果前5行5列示例
head(cor_matrix[,1:5], 5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:45:04