R中将非图形数据与图表生成PDF报告及reprex找不到函数问题咨询
解决方案
整合控制台输出与图表到同一份PDF
完全可以实现,最简便的方案是使用R Markdown完成,操作步骤如下:
- 打开RStudio,点击左上角「File - New File - R Markdown」,在弹出窗口的Output Format选项中选择PDF,点击确定生成模板文件
- 把模板里的示例内容删除,在第一个代码块(通常以
{r setup, include=FALSE}开头)中添加加载你自定义函数的代码:要么直接粘贴compound_report的完整定义,要么用source("存储该函数的R文件路径.R")加载外部存好的函数 - 新建代码块,写入你要运行的代码
compound_report("aromadendrene"),不需要额外调整代码块参数,默认就会自动捕获控制台的文本输出、以及生成的图表 - 点击编辑器顶部的「Knit」按钮,等待运行完成后就会自动生成同时包含所有文本数据和图表的PDF文件
如果不想用R Markdown,也可以通过sink()函数捕获控制台文本输出,同时用pdf()图形设备导出图表,之后再用排版工具整合,但效率远低于R Markdown方案。
reprex报错原因及解决方法
reprex运行时会启动独立的干净R会话,你当前RStudio全局环境里定义的compound_report函数不会被自动带入该会话,所以才会提示找不到函数。
要复现问题你需要:
- 把
compound_report函数的完整定义复制到你要运行的reprex代码的最前面,或者 - 先把函数保存为单独的.R文件,在reprex代码开头添加
source("函数文件的完整路径.R")加载函数
你遇到的报错代码如下:
compound_report("aromadendrene") #> Error in compound_report("aromadendrene"): could not find function "compound_report"
函数正常运行的效果截图:
内容的提问来源于stack exchange,提问作者Phenomniverse
相关产品推荐
相关产品推荐

