如何在R的model summary包中为相关性表添加p值列?
为
summary_correlation生成的相关性表添加P值列 方法一:利用summary_correlation内置参数直接生成
modelsummary的summary_correlation函数支持通过statistic参数指定额外统计量,直接添加p值列:
library(modelsummary) # 假设你的数据集名为df,包含目标13个变量 summary_correlation(df, statistic = "p.value", # 指定添加p值统计量 statistic_override = function(x) sprintf("%.3f", x)) # 可选:格式化p值为3位小数
该参数会自动在相关性系数列后追加p值列,无需额外处理数据结构。
方法二:手动计算并合并相关性与p值(更灵活)
如果内置参数无法满足自定义需求,可以先单独计算相关系数和对应p值,再合并后用modelsummary输出:
library(modelsummary) library(psych) library(reshape2) # 计算带p值的相关矩阵(可替换method为"spearman"等) corr_out <- psych::corr.test(df, method = "pearson") # 将系数矩阵和p值矩阵转为长格式 corr_long <- melt(corr_out$r) p_long <- melt(corr_out$p) # 合并数据并设置列名 combined <- merge(corr_long, p_long, by = c("Var1", "Var2")) colnames(combined) <- c("变量1", "变量2", "相关系数", "P值") # 输出可发表级表格(output可指定"latex"/"html"/"gt"等格式) modelsummary(combined, output = "gt")
如果需要针对特定变量对计算,也可以用cor.test循环遍历变量组合,提取p值后合并到原表格中。
内容的提问来源于stack exchange,提问作者boomer42
相关产品推荐
相关产品推荐

