gt嵌套表格换行与连字符修改,及现有表格转目标样式咨询
解决gt表格嵌套内容格式化与转换需求
需求1:嵌套内容换行并修改连字符
针对嵌套列的内容,我们可以通过文本拼接或子表格渲染两种方式实现换行,同时替换连字符类型。
目标表格1:将嵌套列表转为带换行的文本列
把嵌套列表拼接成带自定义换行和连字符的文本,再通过markdown解析实现单元格内换行:
library(tidyverse) library(gt) diamonds %>% head(5) %>% group_by(color) %>% summarise( # 用<br>实现换行,替换连字符为软连字符‑ x = str_c(x, collapse = "<br>‑ "), y = str_c(y, collapse = "<br>‑ ") ) %>% gt() %>% fmt_markdown(columns = c(x, y)) # 解析HTML换行符渲染换行
目标表格2:生成嵌套子表格
在单元格内嵌入独立的子表格,同时修改子表格内的连字符:
library(tidyverse) library(gt) diamonds %>% head(5) %>% group_by(color) %>% summarise( x = list( tibble(x值 = x) %>% mutate(x值 = str_replace_all(x值, "-", "‑")) %>% # 替换连字符类型 gt() %>% opt_table_lines("none") %>% # 移除子表格边框 tab_options(table.width = px(120)) ), y = list( tibble(y值 = y) %>% mutate(y值 = str_replace_all(y值, "-", "‑")) %>% gt() %>% opt_table_lines("none") %>% tab_options(table.width = px(120)) ) ) %>% gt()
关键说明
- 文本列换行:借助
<br>标记配合fmt_markdown()实现单元格内换行; - 连字符修改:用
str_replace_all()将默认连字符替换为目标类型(示例用软连字符‑); - 嵌套子表格:通过在
list()中生成小型gt表格,实现单元格内嵌表格效果。
内容的提问来源于stack exchange,提问作者anderwyang
相关产品推荐
相关产品推荐

