You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用gtsummary将汽车品牌从列转为行生成统计表格

问题

我需要生成类似学术论文格式的统计表格,但当前用gtsummary包生成的表格将汽车品牌(mark)放在列上,希望改为以行的形式呈现。现有代码如下:

list("style_number-arg:big.mark" = "") %>%
  set_gtsummary_theme()

df_selected <- df %>%
  select(mark, price, year, mileage, vol_engine, fuel)

gts_stat1 <- tbl_summary(
  data = df_selected,
  by = mark,
  statistic = list(
    all_continuous() ~ "{mean} ({sd})",
    all_categorical() ~ "{n} ({p}%)"),
  label = list(price ~ "Price", year ~ "Build Year", mileage ~ "Mileage", vol_engine ~ "Volume Engine", fuel ~ "Fuel"),
  digits = list(year ~ c(0, 1)),
  missing = "no"
) %>%
  add_overall() %>%
  modify_spanning_header(
    all_stat_cols() ~ "**Car Marks**"
  ) %>%
  modify_footnote(all_stat_cols() ~ "Mean and Standard Deviation are presented in parentheses. The variable 'Fuel' is separated into different fuel types, and the proportion per fuel type is shown for each mark") %>%
  bold_labels() %>%
  italicize_levels() %>%
  as_gt() %>%
  gt::tab_header(title = gt::md("**Summary Statistics**")) %>%
  #gt::gtsave(filename = "summary_statistics.ltx")

print(gts_stat1)
修改方案

直接使用gtsummary内置的transpose()函数即可完成行列转置,将品牌从列转为行。修改后的完整代码如下:

list("style_number-arg:big.mark" = "") %>%
  set_gtsummary_theme()

df_selected <- df %>%
  select(mark, price, year, mileage, vol_engine, fuel)

gts_stat1 <- tbl_summary(
  data = df_selected,
  by = mark,
  statistic = list(
    all_continuous() ~ "{mean} ({sd})",
    all_categorical() ~ "{n} ({p}%)"),
  label = list(price ~ "Price", year ~ "Build Year", mileage ~ "Mileage", vol_engine ~ "Volume Engine", fuel ~ "Fuel"),
  digits = list(year ~ c(0, 1)),
  missing = "no"
) %>%
  add_overall() %>%
  # 核心改动:转置表格,互换行列
  transpose() %>%
  modify_spanning_header(
    all_stat_cols() ~ "**Summary Statistics**"
  ) %>%
  modify_footnote(all_stat_cols() ~ "连续变量以均值(标准差)呈现;燃油类型按不同类别展示各品牌下的频数占比") %>%
  bold_labels() %>%
  italicize_levels() %>%
  as_gt() %>%
  gt::tab_header(title = gt::md("**Summary Statistics**")) %>%
  # gt::gtsave(filename = "summary_statistics.ltx")

print(gts_stat1)

关键说明

  • transpose()函数会直接将原表格的行(特征变量)和列(品牌)互换,完美实现需求
  • 同步调整了表头注释和脚注的中文表述,更符合使用习惯
  • 其他格式设置(加粗标签、斜体层级等)保持原有逻辑不变

内容的提问来源于stack exchange,提问作者0klahoma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:17:34