如何在由 gt_regression() 输出的表格标签中插入换行,并将其输出为 LaTeX?

3
根据gtsummay包的文档,你可以在add_significance_stars()中使用<br>来打破HTML表格标签中显示回归模型结果的标签,但是它不能用于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
    )

我根据答案创建了一张表格,但是发现使用 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个回答

1
也许这符合您的需求。您可以通过以下方式进行换行:
  1. 添加\\\\(在latex代码中会显示\\
  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
      )

enter image description here


谢谢你的回答!我已经成功地复现了结果。但是我还有一个问题。实际上,真实数据更加复杂,我需要对每个不同的组运行OLS。但是使用上述方法时,当我使用tbl_merge()时,布局似乎会出现问题。 我将编辑问题。 - ryoto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接