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

如何在R的modelsummary包中恢复添加p值后的相关表默认下三角格式

问题:为相关表添加p值并保留默认下三角显示格式

之前的解决方案通过自定义method函数实现了给相关表添加p值(以星号标注),但生成的是完整的矩形相关表,而默认调用datasummary_correlation(dat)时会生成仅显示下三角的格式。尝试使用datasummary_correlation_format()恢复默认格式未成功,现寻求正确实现方法。

之前的解决方案代码(生成完整矩形表)

library(modelsummary)
library(correlation)

dat = mtcars[1:5, 1:5]

fun = function(x) {
    out = correlation(x)
    stars = c("*" = .2, "**" = .15, "***" = .05)
    p = modelsummary:::make_stars(out$p, stars)
    out$r = sprintf("%.2f%s", out$r, p)
    out = as.matrix(out)
    return(out)
}

datasummary_correlation(dat, method = fun)

尝试失败的代码

library(modelsummary)
library(correlation)

dat = mtcars[1:5, 1:5]

fun = function(x) {
    out = correlation(x)
  
 datasummary_correlation_format(
    out,
    fmt = 2,
    upper_triangle = ".",
    diagonal = "1")

    stars = c("*" = .2, "**" = .15, "***" = .05)
    p = modelsummary:::make_stars(out$p, stars)
    out$r = sprintf("%.2f%s", out$r, p)
    out = as.matrix(out)
    return(out)
}

datasummary_correlation(dat, method = fun)

正确实现代码

关键是先完成p值与相关系数的合并,再将处理后的矩阵传入datasummary_correlation_format()进行格式调整,确保格式化后的结果被返回:

library(modelsummary)
library(correlation)

dat = mtcars[1:5, 1:5]

fun = function(x) {
    # 计算相关系数与p值
    out = correlation(x)
    
    # 为p值添加星号标注,并合并到相关系数中
    stars = c("*" = .2, "**" = .15, "***" = .05)
    p_stars = modelsummary:::make_stars(out$p, stars)
    out$r = sprintf("%.2f%s", out$r, p_stars)
    
    # 转换为矩阵后应用下三角格式
    out_mat = as.matrix(out)
    formatted_out = datasummary_correlation_format(
        out_mat,
        upper_triangle = ".",  # 上三角用点填充
        diagonal = "1"         # 对角线显示1
    )
    
    return(formatted_out)
}

# 生成带p值星号的下三角相关表
datasummary_correlation(dat, method = fun)

说明

  • 先完成相关系数与p值星号的合并,确保每个单元格内容是带星号的相关系数字符串
  • 将合并后的结果转为矩阵,再通过datasummary_correlation_format()设置上三角填充符和对角线内容,实现默认的下三角显示效果
  • 注意必须将datasummary_correlation_format()的返回值赋值给变量并最终返回,否则格式化操作不会生效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:27:45