向包含多个模型的 gtsummary 回归表添加多级标题

2024-01-04

我正在尝试为一个生成多个级别的标头gtsummary回归表包含应在表中按年份分组的回归模型。这是一个玩具示例:

library(dplyr)
library(gtsummary)
library(purrr)

set.seed(92922)
df <- tibble(y_1980 = rbinom(n = 10, size = 1, prob = .4),
             y_1990 = rbinom(n = 10, size = 1, prob = .7),
             x1 = rnorm(10, sd = 1),
             x2 = rnorm(10, sd = 2))

tbls <- c("y_1980 ~ x1", "y_1980 ~ x1 + x2", "y_1990 ~ x1", "y_1990 ~ x1 + x2") %>% 
  map(as.formula) %>% 
  map(glm,
      data = df, 
      family = binomial(link = "logit")) %>% 
  map(tbl_regression, exponentiate = TRUE) %>% 
  map(add_significance_stars, hide_ci = TRUE, hide_p = TRUE, hide_se = FALSE) %>% 
  map(add_glance_table, include = nobs) 

我可以得到这个:

tbls %>% 
  tbl_merge(tab_spanner = c("1980 (1)", "1980 (2)", "1990 (1)", "1990 (2)")) %>% 
  modify_table_body(~.x %>% dplyr::arrange(row_type == "glance_statistic"))

但我想要两个级别——年份在上,型号在下:

 1980      1990
_______   ______
(1) (2)   (1) (2)

我怎样才能做到这一点?


您需要将 gtsummary 表转换为 gt 表。然后你可以使用gt::tab_spanner()放置更高级别的跨越标题。

library(dplyr)
library(gtsummary)
library(purrr)

set.seed(92922)
df <- tibble(y_1980 = rbinom(n = 10, size = 1, prob = .4),
             y_1990 = rbinom(n = 10, size = 1, prob = .7),
             x1 = rnorm(10, sd = 1),
             x2 = rnorm(10, sd = 2))

tbls <- c("y_1980 ~ x1", "y_1980 ~ x1 + x2", "y_1990 ~ x1", "y_1990 ~ x1 + x2") %>% 
  map(as.formula) %>% 
  map(glm,
      data = df, 
      family = binomial(link = "logit")) %>% 
  map(tbl_regression, exponentiate = TRUE) %>% 
  map(add_significance_stars, hide_ci = TRUE, hide_p = TRUE, hide_se = FALSE) %>% 
  map(add_glance_table, include = nobs) 


tbl <-
  tbls %>% 
  tbl_merge(tab_spanner = FALSE) %>% 
  modify_table_body(~.x %>% dplyr::arrange(row_type == "glance_statistic"))

show_header_names(tbl)

gt_tbl <- 
  as_gt(tbl) %>%
  gt::tab_spanner(
    columns = c(estimate_1, std.error_1, estimate_3, std.error_3),
    label = "(1)",
    gather = FALSE
  ) %>%
  gt::tab_spanner(
    columns = c(estimate_2, std.error_2, estimate_4, std.error_4),
    label = "(2)",
    gather = FALSE
  ) %>%
  gt::tab_spanner(
    columns = c(estimate_1, std.error_1, estimate_2, std.error_2),
    label = "1980",
    level = 2,
    gather = FALSE
  ) %>%
  gt::tab_spanner(
    columns = c(estimate_3, std.error_3, estimate_4, std.error_4),
    label = "1990",
    level = 2,
    gather = FALSE
  )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向包含多个模型的 gtsummary 回归表添加多级标题 的相关文章

  • par(mfrow=c(1,2)) 不显示并排密度图[重复]

    这个问题在这里已经有答案了 par mfrow c 1 2 plot 1 12 log y plot 1 2 xaxs i 然而 当我尝试做并排密度图时 图会单独输出 load the stud recs dataset library U
  • R中添加水印

    我在用magickR中的库 我想在一些图片上添加水印 I used image annotate功能如下 img lt image read C Users Maydin Desktop manzara png image annotate
  • decompose() 的周期太少[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 错误看起来像这样 decompose
  • 如何提取与 R 中主题 ID 列表匹配的行?

    我有一个包含许多主题 ID 的数据框 每个主题都有重复观察 我还有一个单独的数据框 其中只有一个主题 ID 列表 我想从更大的数据框中匹配和提取 如何以允许我引用不同数据帧中的SubjectID列表的方式编写代码 不确定我是否完全理解这个问
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c
  • 基于服务器中的条件逻辑呈现闪亮的用户输入

    我正在尝试设置一个闪亮的导航栏面板页面 其中用户控制我根据一组单选按钮中所做的初始选择来显示更改 我直接在 ui 中渲染单选按钮 然后在 Server r 中的 观察到的 逻辑控制结构内构建条件控件 弹出错误是因为我的初始 if 语句计算结
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 是否可以通过扫描从控制台读取而不回显字符?

    这是一个示例函数 passwordEntry lt function cat Enter your password pwd lt scan n 1 what character quiet TRUE invisible pwd 并测试该功
  • kableExtra 中的 row_spec() 函数不会在 html 输出中创建水平线

    我想在 kableextra 表中的某一行下方添加一条水平线 row spec 函数的参数 hline after 应该在行下方添加水平线 row spec 文档 https www rdocumentation org packages
  • 重复测量引导统计数据,按多个因素分组

    我有一个看起来像这样的数据框 但显然还有更多行等 df lt data frame id c 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 cond c A A B B A A B B A A B B A A B B co
  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 时间戳半小时窗口内字段的平均值

    我的数据框有列名Timestamp es看起来像 Timestamp es 2015 04 01 09 07 42 31 2015 04 01 09 08 01 29 5 2015 04 01 09 15 03 18 5 2015 04 0
  • 尝试读取 CSV 文件时出现“无法识别的字符串转义”

    我正在尝试导入一个 csv文件 以便我可以观看此视频 R ggplot2 图形直方图 http www youtube com watch v 47kWynt3b6M 我安装了所有正确的软件包 包括ggplot以及相关的包 视频中的第一个说
  • twitterR 和 ROAuth R 软件包安装

    我在安装 CRAN 上的 twitteR 和 RAOuth 软件包时遇到一些问题 我尝试了几种不同的方法 在 Windows 下使用源代码 在 Ubuntu 下使用 RStudio 我尝试了以下命令 sudo apt get install
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • r 中训练和测试数据的最小最大缩放/归一化

    我正在创建一个函数 它将训练集和测试集作为其参数 最小 最大缩放 标准化并返回训练集并使用这些same最小值和最小 最大范围的值 标准化并返回测试集 到目前为止 这是我想出的功能 min max scaling lt function tr
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal

随机推荐