R语言gt包:如何批量重命名所有列并仅显示跨列标题
问题解决方法
问题根源
你使用的tab_options(column_labels.hidden = TRUE)会隐藏整个表头区域,包括跨列标题(spanners),所以才会出现跨列标题消失的情况。
正确解决方案
不要直接隐藏表头,而是将所有列的标签设置为空字符串,这样跨列标题会保留显示,列标签则变为空白,达到你想要的“仅显示跨列标题”的效果。
方法一:在gt中直接批量设置列标签为空(推荐,不修改原始数据)
library(gt) library(tidyverse) test = dplyr::tibble( id = 1:3, type1_value1 = 2:4, type1_value2 = 3:5, type2_value1 = 4:6, type2_value2 = 5:7) test %>% gt() %>% # 批量将所有列的标签设为空字符串 cols_label(everything() = "") %>% tab_spanner( label = "span1", columns = 2:3) %>% tab_spanner( label = "span2", columns = 4:5)
方法二:先批量修改数据框列名为空(会改变原始数据结构)
如果你需要修改数据框本身的列名,可以用rename_with函数批量处理:
test %>% # 批量将所有列名改为空字符串 rename_with(~ "", everything()) %>% gt() %>% tab_spanner( label = "span1", columns = 2:3) %>% tab_spanner( label = "span2", columns = 4:5)
内容的提问来源于stack exchange,提问作者Essi
相关产品推荐
相关产品推荐

