gt包表格格式化:md函数失效及C栈溢出问题求助
gt包使用问题排查与解决
问题1:md()函数设置字体格式无效果
你的代码存在两处语法错误,导致gt表格未正确生成,markdown格式自然无法生效:
group_by(species) %>管道符不完整,应为%>%tab_header()末尾多了一个闭合括号,打断了后续的链式操作
另外,gt包内置了自己的md()函数,不需要额外安装或加载markdown包,加载外部markdown包反而可能引发命名冲突,建议移除library(markdown)语句。
修正后的基础代码如下:
library(gt) library(tidyverse) library(palmerpenguins) penguins %>% group_by(species) %>% summarize_at( .vars = c("bill_length_mm", "flipper_length_mm", "body_mass_g"), .funs = ~ mean(., na.rm = TRUE) ) %>% gt(rowname_col = "species") %>% tab_header( title = md("The *penguins* dataset"), subtitle = md("three years of data on penguins on ***three islands***") ) %>% opt_align_table_header(align = "left")
问题2:使用cols_label时出现"C stack usage 15923456 is too close to the limit"错误
这个错误本质是代码语法错误导致R解析器陷入死循环,触发栈溢出。你的代码除了上述管道符和括号问题外,还存在重复变量:.vars里重复写了两次bill_length_mm,这也会干扰后续解析。
修正所有问题后的完整代码:
library(gt) library(tidyverse) library(palmerpenguins) penguins %>% group_by(species) %>% summarize_at( .vars = c("bill_length_mm", "flipper_length_mm", "body_mass_g"), .funs = ~ mean(., na.rm = TRUE) ) %>% gt(rowname_col = "species") %>% tab_header( title = md("The *penguins* dataset"), subtitle = md("three years of data on penguins on ***three islands***") ) %>% cols_label( bill_length_mm = md("Bill Length, <br>mm") ) %>% opt_align_table_header(align = "left")
执行修正后的代码后,两个问题都能解决:markdown格式会正常渲染,cols_label也不会再触发栈溢出错误。
内容的提问来源于stack exchange,提问作者sscoresby
相关产品推荐
相关产品推荐

