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

使用gtsummary提取lme随机截距模型p值报错求助

解决gtsummary中添加lme随机截距模型p值的报错问题

错误原因

  • 自定义统计函数参数不符合gtsummary的add_p接口要求,group并非默认传递的参数
  • 直接使用variable ~ by无法正确解析为公式,需动态生成
  • 未从模型tidy结果中提取符合要求的单一p值,返回结构不符合gtsummary预期

修正后的代码

自定义lme统计函数

lme_stat_function <- function(data, variable, by, ...) {
  # 动态构建模型公式:因变量 ~ 分组变量
  formula <- reformulate(termlabels = by, response = variable)
  # 拟合随机截距模型
  model <- nlme::lme(formula, random = ~1|ID, na.action = na.omit, data = data)
  # 提取并返回分组变量对应的p值
  broom.mixed::tidy(model) %>%
    dplyr::filter(term == by) %>%
    dplyr::pull(p.value)
}

完整表格生成代码

# 指定连续变量使用自定义lme检验
lme_stat_render <- list(
  all_continuous() ~ "lme_stat_function"
)

study_dat %>% 
  select(ID, Study_Group, Variable1) %>% 
  tbl_summary(
    by = Study_Group,
    type = list(where(is.numeric) ~ "continuous2")
  ) %>%
  bold_labels() %>%
  italicize_levels() %>%
  add_p(test = lme_stat_render)

关键修正点

  • 移除无效的group参数,直接在模型中指定ID作为重复测量的分组标识
  • 用reformulate动态生成公式,解决变量名解析问题
  • 从tidy结果中筛选出分组变量的p值并返回单一数值,匹配add_p对自定义检验的输出要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:53:10