首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将tbl_regression对象列表转换为单个tbl_regression对象?

如何将tbl_regression对象列表转换为单个tbl_regression对象?
EN

Stack Overflow用户
提问于 2022-09-19 21:22:33
回答 2查看 46关注 0票数 0

我试图向一个组合了多个模型的gtsummary表中添加显着性星号,但是我得到了一个我不知道如何解决的错误。

代码语言:javascript
运行
复制
library(gtsummary)
library(tidyverse)

# Create a list of tbl_regression objects
models <-  c("disp", "disp + hp") %>% 
  map(
    ~ paste("vs", .x, sep = " ~ ") %>% 
      as.formula() %>% 
      glm(data = mtcars,
          family = binomial(link = "logit")) %>% 
      tbl_regression(exponentiate = TRUE))

# Try to add significance stars
models %>% 
  add_significance_stars(
    pattern = "{estimate}{stars}",
    thresholds = c(0.001, 0.01, 0.05),
    hide_ci = TRUE,
    hide_p = TRUE,
    hide_se = FALSE
  ) 
#> Error: Error in argument 'x='. Expecting object of class 'tbl_regression', or 'tbl_uvregression'

列表models似乎不是类tbl_regression的对象,因此不能传递给add_significance_stars()。我怎样才能解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-19 21:31:22

models对象是gtsummary表的列表。因此,正如您在创建表时所做的那样,您必须使用maplist上循环以向每个表添加显着性星号:

代码语言:javascript
运行
复制
library(gtsummary)
library(tidyverse)

models %>%
  map(
    ~ add_significance_stars(.x,
      pattern = "{estimate}{stars}",
      thresholds = c(0.001, 0.01, 0.05),
      hide_ci = TRUE,
      hide_p = TRUE,
      hide_se = FALSE
    )
  )
票数 2
EN

Stack Overflow用户

发布于 2022-09-19 21:31:34

正如您所指出的,models是类tbl_regression的对象列表。您可以只使用lapply,如下所示:

代码语言:javascript
运行
复制
models = lapply(models,
  add_significance_stars,
    pattern = "{estimate}{stars}",
    thresholds = c(0.001, 0.01, 0.05),
    hide_ci = TRUE,
    hide_p = TRUE,
    hide_se = FALSE
  ) 

或者,可以在原始的add_significance_stars()中包含对map()的调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73779426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档