如何使用R中的gtsummary包将下标添加到表中的标签?

时间:2020-03-04 20:30:09

标签: r gtsummary

我想为使用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 package(v0.3.0)于2020-03-04创建

A table produced using tbl_regression in the R package gtsummary showing a coefficient name that I want to contain a numeric subscript

2 个答案:

答案 0 :(得分: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>") }
  )

Image of Table

是的,符号可以轻松替换。我认为最好使用 '~' 以外的其他内容,因为它很容易表示其他含义。

答案 1 :(得分:1)

gtsummary软件包默认使用gt软件包打印表。我浏览了他们的文档,但没有找到在表主体中包含下标的方法。

好消息是gtsummary还支持通过knitr::kable()函数使用as_kable()打印表。您可以在两个tilda之间换行以使其成为下标(例如label = list(no2 ~ "NO~2~"))。在R markdown文件中使用下面的代码,您应该获得下标。使用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()

enter image description here

reprex package(v0.3.0)于2020-03-04创建