我正在通过r减价生成几个报告.如果我一个一个地做,一切都会好起来的.如果我使用%do%-也可以.如果我使用%DOPA%-3选项:
- 有时候这也没什么.
- 有时,报告的名称不同,但内容相同.
- 有时Pandoc会失败,并显示错误:PanDoc文档转换失败,错误为%1
如何解决这个问题?
下面的代码在100%的情况下都运行良好:
library(tidyverse)
library(parallel)
library(doParallel)
OutputFolder <- "c:\\temp\\test\\out"
result_foldername <- "Now"
ServersInDB <<- c("server1.ru", "server2.ru")
cores=detectCores(logical = FALSE)
cl <- parallel::makeCluster(cores-1) #not to overload your computer
registerDoParallel(cl)
render_all_obj <- function (MachineName, OutputFolder, result_foldername)
{
library(rmarkdown)
render(input = "c:\\temp\\test\\proj\\Report.RMD",
output_file = paste0(MachineName, ".html"),
output_dir = file.path (OutputFolder, result_foldername ),
params = list(MachineName = MachineName)
)
}
foreach (MachineName = ServersInDB) %do% {
render_all_obj(MachineName, OutputFolder, result_foldername)
}
parallel::stopCluster(cl)
以下是失败的代码.
library(tidyverse)
library(parallel)
library(doParallel)
OutputFolder <- "c:\\temp\\test\\out"
result_foldername <- "Now"
ServersInDB <<- c("server1.ru", "server2.ru")
cores=detectCores(logical = FALSE)
cl <- parallel::makeCluster(cores[1]-1) #not to overload your computer
registerDoParallel(cl)
render_all_obj <- function (MachineName, OutputFolder, result_foldername)
{
library(rmarkdown)
render(input = "c:\\temp\\test\\proj\\Report.RMD",
output_file = paste0(MachineName, ".html"),
output_dir = file.path (OutputFolder, result_foldername ),
params = list(MachineName = MachineName)
)
}
foreach (MachineName = ServersInDB) %dopar% {
render_all_obj(MachineName, OutputFolder, result_foldername)
}
parallel::stopCluster(cl)
这是我的RMD:
---
output:
html_document:
toc: true
dev: 'svg'
number_sections: true
toc_depth: 2
toc_float: true
theme: cerulean
toc_collapsed: true
self_contained: true
mathjax: NULL
params:
MachineName: "ServerName" #name of server to analyze
---
```{r , echo=FALSE, include=FALSE, results='hide'}
MachineName <- params$MachineName
```
---
title: "My report is about: `r MachineName`"
---