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

R语言gt包如何根据列数据类型自定义表格列对齐方式

解决方案

你只需要把原代码中全局设置所有列居中的cols_align(align = "center", columns = everything())代码段,替换为按数据类型匹配列的两次对齐设置即可。gt支持tidyselect语法,可以通过where()直接匹配对应数据类型的列,不需要手动罗列列名,适配性更强。

修改后的完整代码如下:

dt <- df %>% 
  group_by(category) %>%
  gt() %>% 
  tab_header(
    title = md("Category name")
  ) %>%
     tab_style(
     locations = cells_column_labels(columns = everything()),
     style     = list(
       #Give a thick border below
       cell_borders(sides = "bottom", weight = px(3)),
       #Make text bold
       cell_text(weight = "bold")
     )
   ) %>%
     tab_style(
     locations = cells_row_groups(groups = everything()),
     style     = list(
       cell_text(weight = "bold")
     )
   ) %>%
  # 字符型列居中对齐
  cols_align(align = "center", columns = where(is.character)) %>%
  # 数值型列左对齐
  cols_align(align = "left", columns = where(is.numeric))
dt

如果你更倾向于手动指定列名,也可以写成如下形式,效果完全一致:

cols_align(align = "center", columns = c(type, variable)) %>%
cols_align(align = "left", columns = c(price, quantity))

内容的提问来源于stack exchange,提问作者ah bon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:45:08