繁体   English   中英

R Markdown使用动态字符串扩展:无法启动png()设备时出现错误,没有明确的原因有时

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM