如何用R函数将数据内容输出到Quarto-pub Docx输出文档?
解决方案
原代码存在管道运算符错误、输出逻辑不匹配问题,且直接用cat无法让Quarto识别为Markdown标题,需调整代码逻辑并启用结果原样输出选项:
修正后的完整代码
library(tidyverse) text_data <- tribble( ~type, ~name, ~color, "fruit", "apple", "red", "vegetable", "cucumber", "green", "fruit", "banana", "yellow", "grain", "rice", "white" ) # 按类型分组生成层级标题 text_data %>% group_by(type) %>% group_walk(function(data, group) { # 输出一级标题:分类名称 cat('\n# ', group$type, '\n', sep = '') # 遍历每个条目输出二级、三级标题 pwalk(data, function(name, color, ...) { cat('\n## ', name, '\n', sep = '') cat('\n### ', color, '\n', sep = '') }) })
关键说明
- 代码块选项
results='asis':这是让Quarto将R输出的文本直接当作Markdown解析渲染的核心,否则cat的内容只会显示为普通代码输出。 - 分组逻辑调整:用
group_walk遍历每个分类组,先输出分类的一级标题;再用pwalk遍历组内每个条目,依次输出名称(二级标题)和颜色(三级标题)。 - 修正了原数据中"cumcumber"的拼写错误(正确为
cucumber),避免文档内容出错。
结合你现有YAML配置中的number-sections: true,生成的Docx文档会自动为各级标题添加编号,同时生成符合要求的目录。
内容的提问来源于stack exchange,提问作者abreums
相关产品推荐
相关产品推荐

