gpt4 book ai didi

r - 如何基于一个数据集最好地从 RMarkdown 生成多个 HTML 文件?

转载 作者:行者123 更新时间:2023-12-04 10:52:08 24 4
gpt4 key购买 nike

我有一个非常有用的 RMarkdown 报告,并且已经增长到好几页,其中包含 HTML 文件中的所有图形和表格。

它对所有图形和表格使用相同的数据集。

我想做的是继续生成这个大的 html 文件,然后生成几个新的子目录,每个子目录都有自己的 html 文件和其中的子目录,每个子目录都有自己的 html 文件。

在这种情况下,完整的报告包含有关部门的数据,然后每个子目录将包含与部门内每个组相关的 html 输出,每个子目录将包含一个子目录,其中包含每个组中每个人的 html 输出。这样,如果某人只对一组或一个人的指标感兴趣,他们会查看最合适的输出。

Parent dir: The same large html file with figures and tables generated with data for entire dept.
|
__Subdir for each group: Output based on same data but only the group's metrics
|
__Subdir for each person: Output based on same data but only individual's metrics

安排这个的最好方法是什么?
1. RMardkown 中是否有代码块选项,我可以说, block a 进入这个 html 输出文件,chuck b 进入另一个?
2. 我是否需要多个 RMarkdown 文件,每个 html 输出一个,在它们之间进行某种缓存,这样我就不必重新处理所有数据? (这看起来很傻,因为我需要很多 html 文件)
3.我应该放弃RMarkdown来完成这个任务吗?

最佳答案

我做的事情就像你用 knitr 提议的那样,效果很好。

不要告诉任何人,但我使用“for”循环在一堆委员会中循环,每个委员会都得到相同的报告,但有他们的数据。然后我将报告推送到目录结构中,压缩并邮寄。

我有一个 Rmd 文件,它需要两个数据集,setA(作为主题)和 setB(作为它的对等方)

流程类似于:

set <- assemble_data() # loads whole set
for (report in report_list) {
setA <- filter(set, subject == report)
setB <- filter(set, subject != report)
output_html <- str_c('path/',report,'.html')
knit_interim <- str_c('path/',report,'md')
knit_pattern <- 'name of RMd' # I generate more than one report for each place
knit(knit_pattern)
markdowntoHTML(file = knit_interim, output=output_html, stylesheet=stylesheet, encoding='windows-1252')
}

通过这种方式,我可以在几分钟内生成一个报告集。我的情况可能比你的简单,因为报告结构是相同的——只是数据集发生了变化。

请注意,这不是代码的粘贴(它比这稍微复杂一些)所以要小心拼写错误等。

重点(据我所知)是编写一个需要特定名称数据集的 Rmd,并且 R 代码为其提供本地范围。最初我很挣扎,但执行起来很简单。

[更新:'你如何将数据传递给 RMd 文件?'

您没有明确需要。在我上面的代码中,RMd 被写入了 setA 和 setB 中的预期数据。

它使工作流程变得非常简单 - 您使用数据集编写模板(手动过滤一个),然后当您准备好时,您可以运行循环。就像我说的,起初我有点难以理解,但只是跳进去,一切都很好。

关于r - 如何基于一个数据集最好地从 RMarkdown 生成多个 HTML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com