R导出excel自动命名sheet --ava.lang.OutOfMemoryError: GC overhead limit exceeded

在R里面导出excel表格时,出现如题所示的错误提示。

解决方案:

在调包之前加语句:

options(java.parameters = "- Xmx1024m")

在导出数据之后加语句:

 gc()

完整示例:

# 打开excel需要的包
library(openxlsx)
# 导出excel需要的包
options(java.parameters = "- Xmx1024m")  # *****记得加这句
library(xlsx)
library(rJava)
library(xlsxjars)
#
# 读取待处理数据
#
rawdata <- openxlsx::read.xlsx(xlsxFile="D:/Program Files (x86)/data/江苏省13719_1128.xlsx") 
# # 打开excel需要的包
library(openxlsx)
# 导出excel需要的包
options(java.parameters = "- Xmx1024m")  # *****记得加这句
library(xlsx)
library(rJava)
library(xlsxjars)
#
# 读取待处理数据
#
rawdata <- openxlsx::read.xlsx(xlsxFile="D:/Program Files (x86)/data/江苏省13719_1128.xlsx") 
  # 按照地级市将江苏省的数据导出到同一个excel表格的不同sheet上,
  # 并将sheet自动命名为地级市名称
  #unique(rawdata[,6])             #  地级市名称
  #length( unique(rawdata[,6]) )   #  地级市数量
for(n in 1:length( unique(rawdata[,6]) ) ){
  write.xlsx2(rawdata[rawdata[,6]==unique(rawdata[,6])[n],c(1:8,15,19,21,22,25,29,30:38)],                                                             
              "D:/Program Files (x86)/data/bj_err/北京700.xlsx",sheetName = unique(rawdata[,6])[n],   
              row.names = FALSE,append = TRUE)  
  #
  gc()  # *** 记得加这句
 }

江苏省的地级市: [1] "扬州市"   "无锡市"   "盐城市"   "泰州市"   "徐州市"   "南京市"   "镇江市"   "宿迁市"   "淮安市"   "连云港市"
[11] "苏州市"   "常州市"   "南通市"  


效果如图所示:

R导出excel自动命名sheet --ava.lang.OutOfMemoryError: GC overhead limit exceeded_第1张图片

更多信息可以参考:

In R: How do i solve “Out of memory” error in POS tagger?

How to fix OutOfMemoryError (Java): GC overhead limit exceeded in r? [duplicate]

你可能感兴趣的:(R-NOTE)