4

我想在 R 包 gtsummary 中使用 tbl_regression 生成的回归汇总表的变量名中引入下标。任何人都可以提供有关如何执行此操作的指导吗?用于生成表格的代码和生成的表格如下所示。我希望标签“NO2”显示为“NO 2 ”。

library(tidyverse)
library(gtsummary)

case <- c(0,1,0,0,0,0)
no2 <- c(17, 14, 8, 9, 9, 7)
df <- data.frame(case, no2)

mod_adj <- glm(case~no2,data=df, family="binomial")

regression_table_adj <- mod_adj %>% 
  tbl_regression(exponentiate = TRUE,  label = list(no2~"NO2"))

regression_table_adj

reprex 包(v0.3.0)于 2020 年 3 月 4 日创建

使用 R 包 gtsummary 中的 tbl_regression 生成的表显示了我想要包含数字下标的系数名称

4

2 回答 2

2

这不是我的,但我在这里找到了答案并对其进行了调整。 https://community.rstudio.com/t/subscripts-to-annotate-gt-table/87089

本质上,您会将其转换为gt对象并破解标签,使其打印为下标。

library(tidyverse)
library(gtsummary)
library(gt)

case <- c(0,1,0,0,0,0)
no2 <- c(17, 14, 8, 9, 9, 7)
df <- data.frame(case, no2)

mod_adj <- glm(case~no2,data=df, family="binomial")

regression_table_adj <- mod_adj %>% 
  tbl_regression(exponentiate = TRUE,  label = list(no2 = "NO@2~")) %>%
  as_gt() %>%
  text_transform(
    locations = cells_body(),
    fn = function(x) {
      str_replace_all(x,
                      pattern = "@",
                      replacement = "<sub>") %>% 
        str_replace_all("~",
                        "</sub>") }
  )

表的图像

是的,符号可以很容易地替换。我认为使用其他东西会更好,'~'因为它很容易意味着其他东西。

于 2020-12-28T16:25:24.700 回答
1

gtsummary 包默认使用 gt 包来打印表格。我查看了他们的文档,但没有看到在表格正文中包含下标的方法。

好消息是 gtsummary 还支持使用knitr::kable()viaas_kable()功能打印表格。您可以在两个波浪号之间换行以使其成为下标(例如label = list(no2 ~ "NO~2~"))。在 R 降价文件中使用下面的代码,你应该得到下标。使用 kable 的缺点是它不支持脚注、缩进和跨页眉。快乐编码!

library(gtsummary)

case <- c(0,1,0,0,0,0)
no2 <- c(17, 14, 8, 9, 9, 7)
df <- data.frame(case, no2)

mod_adj <- glm(case~no2,data=df, family="binomial")

mod_adj %>% 
  tbl_regression(
    exponentiate = TRUE,  
    label = list(no2 ~ "NO~2~")
  ) %>% 
  as_kable()

在此处输入图像描述

reprex 包(v0.3.0)于 2020 年 3 月 4 日创建

于 2020-03-04T20:45:32.897 回答