Ответ 1
Если вы разделите проблему, это будет проще. Я создал некоторые фиктивные данные.
У вас может быть main.Rmd
, где вы запускаете цикл for
, например:
title: "Java Based Apps"
date: "January 13, 2017"
output:
pdf_document:
number_sections: yes
toc: true
highlight: zenburn
fig_width: 7
fig_height: 6
fig_caption: true
tables: yes
keep_tex: true
fontsize: 12
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = F, message = F, warning = F)
library(tibble)
library(lubridate)
library(dplyr)
library(corrplot)
library(ggplot2)
library(knitr)
# Create some sample data
set.seed(2887)
data <- tibble(
app = sort(rep(c("sample app", "sample app 2"), 500))
, Date = rep(seq(now() - as.difftime(7, unit="days"), now(), length.out = 500), 2)
, JVM = sample(c("a", "b", "c"), size = 1000, replace = T)
, JVM_CPU = runif(1000, 0, 100)
, JVM_Mem = runif(1000, 0, 100)
)
```
```{r}
app <- sort(unique(data$app))
out <- NULL
for (i in app){
data.filtered <- dplyr::filter(data, app == i)
out <- c(out, knit_child('app_template.Rmd', quiet = TRUE))
}
```
`r paste(out, collapse='\n')`
Вы будете перебирать шаблон, который я здесь называл app_template.Rmd
, и выглядит так (обратите внимание, что он не имеет yaml
:
\pagebreak
# `r i`
## Correlation Analysis between performance KPI's
```{r, fig.width=5, fig.height=5}
m <- matrix(rnorm(1000), ncol = 10)
M <- cor(m)
corrplot(M, method="number")
```
## JVM %CPU Usage
```{r, fig.width=10, fig.height=5}
ggplot(data.filtered, aes(Date, JVM_CPU, group=JVM)) +
geom_point() +
geom_smooth(method = "lm", se = F) +
theme_bw() +
ggtitle(paste(i, " - JVM %CPU Usage/15 Minute Interval")) +
facet_wrap(~ JVM, scale = "free")
```
## JVM Heap Usage
```{r, fig.width=10, fig.height=5}
ggplot(data.filtered, aes(Date, JVM_Mem, group = JVM)) +
geom_point() +
geom_smooth(method = "lm", se = F) +
theme_bw() +
ggtitle(paste(i, " - JVM Memory Usage/15 Minute Interval")) +
facet_wrap(~ JVM, scale = "free") +
ylab("Memory Usage/MG")
```
Если вы knit
main.Rmd
, вы должны получить .pdf
с вашими спецификациями.