如何在 gt_regression() 输出的 table 的标签中放置换行符并由 LaTeX 输出?

How to put line breaks in the labels of the table output by gt_regression() and output it by LaTeX?

根据the documentation of the gtsummay package,您可以在add_significance_stars()中使用<br>来打破table的标签显示[=30=中回归模型的结果],但它不适用于 LaTeX。 我试过\n等其他换行方式,还是不行。如何在 LaTeX 中换行?

这是 HTML 中的示例。

df <- 
mtcars %>% 
  lm(mpg ~ ., data = .)

df %>%
  tbl_regression() %>%
  add_significance_stars(
    hide_se = TRUE,
    pattern = "{estimate}{stars}<br>({std.error})"
  ) %>%
  modify_header(estimate ~ "OLS<br>result")

这是一个 LaTeX 示例。

df %>% 
  tbl_regression() %>% 
  add_significance_stars(
    hide_se = TRUE,
    pattern = "{estimate}{stars}<br>({std.error})"
  ) %>%
  modify_header(estimate ~ "OLS<br>result") %>% 
  as_kable_extra(
    format = "latex",
    booktabs = TRUE
    )

我根据答案创建了一个table,但是我发现这个方法在使用tbl_merge()时导致布局被破坏。

我再展示一下问题代码

# make nested dataframe
nest_df <- 
mtcars %>% 
  tibble() %>% 
  group_nest(vs)

# make function
mod_fun <- function(df){lm(mpg ~ ., data = df)}

# map function
nest_df <-
  nest_df %>% 
  mutate(model = map(data, mod_fun))

# make table
nest_df <- 
  nest_df %>%
  mutate(
    tbl = map(
      .x = model,
      ~ tbl_regression(
        .x,
      ) %>% 
        add_significance_stars(
          hide_se = TRUE,
          pattern = "{estimate}{stars}\\&({std.error})"
        ) %>%
        modify_header(estimate ~ "OLS\\&result")
    )
  )

# merge table
nest_df_m <- 
  tbl_merge(
    tbls = nest_df$tbl,
    tab_spanner = c("type1", "type2")
  )

# output merged table
nest_df_m  %>%
  as_kable_extra(
    format = "latex",
    booktabs = TRUE,
    escape = FALSE
    ) %>% 
  kable_styling(position = "center")

也许这符合您的需要。你可以换行

  1. 添加\\(在乳胶代码中给出\),
  2. 添加一个 &std.error 放在与估计值相同的列中,
  3. as_kable_extra 中设置 escape=FALSE
    df %>% 
      tbl_regression() %>% 
      add_significance_stars(
        hide_se = TRUE,
        pattern = "{estimate}{stars}\\&({std.error})"
      ) %>%
      modify_header(estimate ~ "OLS\\&result") %>% 
      as_kable_extra(
        format = "latex",
        booktabs = TRUE,
        escape = FALSE
      )