我正在尝试通过使用RMarkdown的训练中心来创建自动健身测试报告。我正在使用相同的数据帧结构和类似的代码构建之前在主题here上提出的问题。
我想根据集线器稍微定制每个RMarkdown报告,同时仍然允许它是一个自动化的过程(即1个脚本+1个.rmd)。例如,所有的集线器都会有一个大跳跃图,但对于A,我想要一个大跳跃图和一个10米冲刺图。
我尝试过在YAML和render函数中使用params,但到目前为止还没有成功。
样本数据
Date Athlete Test Average Hub
1 2019-06-03 Athlete1 Broad_Jump 175.000000 A
2 2019-06-10 Athlete1 Broad_Jump 187.000000 A
3 2019-06-10 Athlete2 Broad_Jump 200.666667 B
4 2019-06-10 Athlete3 10m_Sprint 1.831333 B
5 2019-06-10 Athlete2 10m_Sprint 2.026667 B
6 2019-06-17 Athlete1 Broad_Jump 191.500000 A
7 2019-06-17 Athlete2 Broad_Jump 200.666667 B
8 2019-06-17 Athlete3 10m_Sprint 1.803667 B
9 2019-06-17 Athlete2 10m_Sprint 2.090000 B
10 2019-06-24 Athlete1 Broad_Jump 192.000000 A
R脚本
library(rmarkdown)
library(knitr)
library(dplyr)
library(ggplot2)
WT <- read.csv("WT.csv")
WT_10m <- WT %>%
filter(Test == "10m_Sprint") %>%
select(Date, Athlete, Hub, Average)
plot2 <- ggplot(WT_10m, aes(x=Date, y=Average))+
geom_point()
for (hub in unique(WT$Hub)){
subgroup <- subset(WT, Hub == hub)
render(
input = "Hub_Test.rmd",
params = list("plot2"=plot2),
output_file = paste0('report.', hub, '.pdf'))
.Rmd文件
---
title: "WT Monitoring: Hub"
output: pdf_document
params:
plot2: plot2
hub:
label: "hub"
value: A
choices: [A, B]
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo =假)
库(Rmarkdown)
库(Knitr)
库(Dplyr)
库(Ggplot2)
WT <- read.csv("WT.csv")
子组<-子集(WT,集线器==集线器)
subgroup_Broad <-子组%>%
filter(测试== "Broad_Jump") %>%
select(日期、运动员、中心、平均值)
```javascript
ggplot(subgroup_Broad,aes(x=Date,y= Average)) +
geom_point()
```javascript
参数$plot2
我不确定是使用params、渲染文件还是其他方法来完成此任务。有几个集线器和测试,所以我尽量避免为每个集线器使用单独的Rmarkdown模板。
转载请注明出处:http://www.0591kyj.com/article/20230526/2406996.html