[英]R Markdown Expanding with Dynamic String: Error unable to start png() device Shows Up Occasionally Without Clear Reason
我的虚拟markdown脚本中有此代码。
<!--- add tests from dynamic strings -->
`r paste(knit(text = expand_string), collapse = '\n')`
该字符串是在主脚本中生成的:
generate_expand_string <- function(reported_test)
{
exp_str <- paste0(
'<h2>',
reported_test,
'</h2>',
'\n',
'<br>',
'\n```{r ',
paste0(reported_test, '_charts'),
', echo = F, fig.width = 14, fig.height = 12, fig.align = "center", message = F, warning = F}\n\n',
'current_test <- ',
'"',
reported_test,
'"',
'\n\n',
'if(length(indicator_charts[[current_test]]) > 0) { for(i in 1:length(indicator_charts[[current_test]])) { print(indicator_charts[[current_test]][[i]]) } };',
'\n\n```',
'\n',
'<br>',
'\n```{r ',
paste0(reported_test, '_table'),
', results = "asis", echo = F}\n\n',
'current_test <- ',
'"',
reported_test,
'"',
'\n\n',
'kable(indicator_tables[[current_test]], align = rep("l", times = ncol(indicator_tables[[current_test]])));',
'\n\n```',
'\n\n'
)
return(exp_str)
}
我在主脚本中运行markdown:
rmarkdown::render(
paste0(
getwd(),
'/',
'dfsdsvcg/',
dfsfdsfdf
),
output_file = paste0(
gsub(' ', '_', reported_indicator),
entity_indicator_report_file_name
),
output_dir = out_dir
)
我实际上检查了临时存储png图像的文件夹的存在:
<img src="S:\dfdfdf\dffdfd\debug\detailed\entities\September_2017\15_September_2017\thtthththef-addons\bwagfewcdvfe_files/figure-html/njebgkrded_charts-1.png" width="1344" style="display: block; margin: auto;" />
看起来像这样。 有图像。 当我循环生成页面时,此错误发生1/500次。
问题:您认为会导致什么?
当发生这种情况时,我有一个猜测:图像的路径长度变成200个字符以上。 我可以尝试将其缩短。
答案 (显然是错误修复的原因对我有用):如果从列出的ggplot对象作为png文件导出并临时存储在报告目录中的图像的路径长度大于n个元素(大约200个),则生成的报告降价失败。 注意输出文件名的长度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.