为何gt表格仅显示2列且数值列隔行缺失?原数据框含3列
问题原因及解决办法
核心原因
你的数据框Validation_Means_1是分组数据框(grouped_df),从dput输出的class = c("grouped_df", "tbl_df", "tbl", "data.frame")可以确认,且分组依据是Name列(每个Name单独成组,每组仅1行)。
gt包对分组数据框的默认渲染逻辑是:
- 将分组列(这里是
Name)作为表格的行分组标题隐藏在左侧,而非作为常规列显示,所以你看不到Name列; - 分组标题会占据单独的行,导致数值列的内容看起来像是"隔行显示"。
解决办法
在调用gt()之前,先用ungroup()取消数据框的分组状态,让所有列都以常规列的形式渲染:
Validation_Summary_Table <- Validation_Means_1 %>% ungroup() %>% # 新增取消分组的步骤 select("Name", "Source", "Average Disease Severity") %>% gt() %>% tab_spanner( label = "Accession Information", columns = c("Name", "Source") ) %>% cols_label( Name = "Name", Source = "Source", `Average Disease Severity`= "Average Disease Severity" ) print(Validation_Summary_Table)
补充说明
如果后续需要保留分组进行其他操作,也可以在生成gt表格时,通过gt(groupname_col = NULL)强制不使用分组列作为行标题,但最直接的方式还是先取消分组,避免不必要的渲染逻辑干扰。
内容的提问来源于stack exchange,提问作者Old_Man_Barrett
相关产品推荐
相关产品推荐

