Windows下如何安装r2excel?

r2excel 是一个Excel文件的读、写、格式化R语言包,支持Excel 97~2003版本的文件格式(.xls)和Excel2007以后的格式(.xlsx)。

在mac OSX下安装很顺利,

install.packages("devtools")
library(devtools)
install_github("kassambara/r2excel")

Windows下则遇到了不小麻烦,

Error : .onLoad failed in loadNamespace() for 'rJava', details:
  call: inDL(x, as.logical(local), as.logical(now), ...)
error: 无法载入共享目标对象‘C:/Users/lhy/Documents/R/win-library/3.3/rJava/libs/i386/rJava.dll’::
  LoadLibrary failure:  %1 不是有效的 Win32 应用程序。

Error : package 'rJava' could not be loaded
错误: 载入失败

我的R是x64版本,

> R.version
               _                           
platform       x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64, mingw32             
status                                     
major          3                           
minor          3.1                         
year           2016                        
month          06                          
day            21                          
svn rev        70800                       
language       R                           
version.string R version 3.3.1 (2016-06-21)
nickname       Bug in Your Hair

并且安装了64位 jdk1.8.0_74,没有安装32位jdk(或者jre),并且我并不想要32位的版本,研究很久,找到了解决办法,不做多架构编译,

install.packages(c("xlsx","rJava"),repos = "http://cran.us.r-project.org")
devtools::install_github("kassambara/r2excel", args="--no-multiarch")

 

安装成功后,又遇到了问题,写比较大的文件时报错如下,

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "newInstance", .jfindClass(class),  : 
                  java.lang.OutOfMemoryError: GC overhead limit exceeded 

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
                  java.lang.OutOfMemoryError: Java heap space

这要求我们在设置额外的java参数,

options(java.parameters = "-Xmx3g -Xms1g") #具体根据你的机器情况设置
library(r2excel)