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
相关产品推荐
相关产品推荐

