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
相关产品推荐
相关产品推荐

