R语言生成word报告遇到的坑

背景需求

对于生信分析而言,对结果的展示如何做到更方便合理,更好的与合作者沟通交流项目结果。能够自动生成一些可视化报告,成了科研狗的刚需,R语言提供了多种解决方案,比较常见的是markdown格式,可以友好生成网页版报告,但是对于后续科研文章撰写还存在不友好的问题。比如将结果统计表写到word里,我之前的操作方案,是下载成xls复制到word上,再慢慢修改格式,比较耗时耗力,实际上R语言具备自动生成word的功能,本篇主要介绍如何配置R环境达到这样的目的。

坑1

简单搜索发现R包ReporteRs可以实现.
于是着手安装install.packages(“ReporteRs”),可以目前已经下架了

1
2
3
4
5
6
7
Warning in install.packages :
package ‘ReporteRs’ is not available (for R version 3.5.1)
Error in library(ReporteRs) : there is no package called ‘ReporteRs’

#检索后
You can not solve that as it has been removed from CRAN
(you can find details on the github page https://github.com/davidgohel/ReporteRs).

接着在 GitHub上安装

1
2
devtools::install_github('davidgohel/ReporteRsjars')
devtools::install_github('davidgohel/ReporteRs')

各种报错接踵而来,首先JAVA版本不对,需要6-8的版本,目前最新的Java版本不适用该包。
填坑开始安装8版本Java

1
2
3
4
➜  [/Users] java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

坑2

填完这个发现并不管用,安装rJava后,载入失败。

1
2
3
4
5
6
7
8
Error: package or namespace load failed for ‘rJava’:
loadNamespace()里算'rJava'时.onLoad失败了,详细内容:
调用: dyn.load(file, DLLpath = DLLpath, ...)
错误: 无法载入共享目标对象‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so’::
dlopen(/Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so, 6): Library not loaded: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/lib/server/libjvm.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.4/Resources/library/rJava/libs/rJava.so
Reason: image not found
错误: 无法载入程辑包‘rJava’

查了一下发现这是因为检索不到对应的动态库,给出解决方案

1
sudo ln -f -s $(/usr/libexec/java_home)/lib/server/libjvm.dylib /usr/local/lib

这波操作完成,rJava包载入正常了。

坑3

于是鼓起勇气继续安装ReporteRs
发现还是不行,真是日了狗了,有点放弃的年头,查了不少材料,让我安装gcc啥的,问题我的电脑自带gcc啊。
后来还是找到官方给出的问题解答博客,发现我的电脑缺少cairo工具

1
2
3
4
5
6
brew install cairo
#终端安装完成后
#在R环境中输入
devtools::install_github("davidgohel/gdtools")
devtools::install_github("davidgohel/rvg")
devtools::install_github("davidgohel/ReporteRs")

终于可以顺利安装了。
测试一下发现效果确实不错,生成的work格式比较实用,后续可以深入研究美化图表。
生成图

填坑之路漫漫兮,吾将上下而求索。

参考材料:

https://blog.csdn.net/leolotus/article/details/50978223
https://github.com/davidgohel/ReporteRs
https://d.cosx.org/d/420035-mac-rjava
https://davidgohel.github.io/ReporteRs/articles/faq.html

-------------    本文结束  感谢您的阅读    -------------