【问题标题】:Can I generate separate HTML file for each header using rmarkdown::render()?我可以使用 rmarkdown::render() 为每个标题生成单独的 HTML 文件吗?
【发布时间】:2019-09-11 16:35:09
【问题描述】:

我使用 rmarkdown::render() 函数对 .Rmd 文件列表生成报告,并为每个文件获取一个 HTML 文件。

这很好,直到我的数据集变得更大并且我的报告现在包含超过 100 个数字...HTML 文件通常最终超过 100MB,而我现在有一些非常大的文件 (~500MB)。

.Rmd 被分成几个块,所以有人可能会认为我必须将我的 .Rmd 拆分为更小的文件(假设每个文件一个块)。 这不是(很容易)可行的,因为 .Rmd 定义了一个数据处理工作流程(在 chunk3 中生成的数字需要在 chunk1 和 chunk2 中进行处理)。

我想知道是否可以自动将渲染拆分为多个 HTML 文件。 理想情况下,我梦想在render() 中有一个“splitHeader”参数,它将为指定级别的每个标题生成单独的 HTML 文件。

我想一个丑陋的解决方案是为我想要渲染(或不渲染)的每个块/标题手动添加条件语句,并使用不同的参数多次调用 render()。但这非常低效(而且丑陋,我已经说过了)......

有人有建议吗?

【问题讨论】:

    标签: r r-markdown


    【解决方案1】:

    我不确定这是否可以解决(或至少有助于解决):您可以拥有多个独立的 .Rmd 文件(子文件),根据需要划分内容。在“母亲”文件中,您可以使用以下方式添加孩子:

    ```{r child = "yourChild.Rmd"}
    ```
    

    子 .Rmd 文件不应包含任何标题信息。也就是说,删除 .Rmd 中类似于以下内容的第一行:

    ---
    title: "Your Title"
    author: "Your name"
    output: html_notebook
    ---   
    

    【讨论】:

    • 这个 goig 是用来生成单独的 HTML 文件(每个孩子一个)吗?我认为子文档被设计为由“母亲”合并为单个输出。
    • 所有 HTML 文件都被合并到 mother 文档中。你得到了不同的结果吗?
    • 是的,这就是我得到的,不幸的是,这不是我想要实现的。我正在尝试将我的主文档自动拆分为几个子文档,因为主文档太大。
    • 在这种情况下,您可以按标签拆分文档。您所要做的就是在标题后添加 { .tabset} ,所有子标题将自动成为标签。当您添加与初始标题相同或更高的标题时,选项卡系统会中断。见this
    • 不幸的是,我认为这不会有助于使文档更轻。我最终得到了非常大的文件,我正在寻找一种方法将它们自动拆分为几个“子文档”。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 2023-01-20
    • 2021-12-05
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多