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

如何将gt表格的Stub(行首栏)移至右侧并实现镜像布局?

实现gt表格的镜像布局(Stub移至右侧)

解决代码

library(gt)

# 你的示例数据集
example <- structure(list(pos = c("QB", "RB", "WR", "TE", "RB", "DEF"), 
    team = c("PHI", "DAL", "PHI", "PHI", "WAS", "DAL"), name = c("Jalen Hurts", 
    "Tony Pollard", "A.J. Brown", "Dallas Goedert", "Antonio Gibson", 
    " Cowboys"), points = c(0, 0, 0, 0, 0, 0), division = c("NFC East", 
    "NFC East", "NFC East", "NFC East", "NFC East", "NFC East"
    )), class = "data.frame", row.names = c(NA, -6L))

# 1. 反转列顺序,把原Stub列(name)放到最后
example_reversed <- example[, rev(colnames(example))]

# 2. 创建gt表格并调整布局
gt(example_reversed) %>%
  # 将最后一列设为Stub
  cols_to_stub(columns = name) %>%
  # 用CSS实现镜像布局
  opt_css(
    "
    .gt_table_body {
      display: flex;
      flex-direction: row-reverse;
    }
    .gt_col_heading {
      display: flex;
      flex-direction: row-reverse;
    }
    .gt_stub {
      border-left: 1px solid #ccc;
      border-right: none;
    }
    .gt_table_body .gt_row {
      flex-direction: row-reverse;
    }
    "
  ) %>%
  # 调整表头文本对齐(可选,根据需求调整)
  tab_style(
    style = cell_text(align = "right"),
    locations = cells_column_labels(columns = everything())
  )

关键步骤说明

  • 反转列顺序:把数据列倒序排列,让原本的Stub列(name)处于最后,方便设置为行首栏。
  • CSS镜像布局:通过flex布局的row-reverse属性,反转表格主体和表头的排列方向,同时调整Stub的边框样式,让它显示在表格右侧。
  • 可选对齐调整:如果需要调整表头文本对齐,可通过tab_style设置,忽略文本对齐的话可以删掉这部分。

内容的提问来源于stack exchange,提问作者Kent Weyrauch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 16:47:04