pos*_*han 16 excel r xlsx xlconnect
我必须读取文件夹列表中的文件并将数据保存在R中.我使用以下代码获取测试数据并且它可以工作.当我使用代码获取实际数据时,我得到此错误
错误:OutOfMemoryError(Java):超出GC开销限制来自:top level
这是我为测试数据所做的
parent.folder <- "C:/Users/sandesh/Desktop/test_R"
sub.folder <- list.dirs(parent.folder, recursive =TRUE)[-1]
file <- file.path(sub.folder, "sandesh1.xlsx")
library(xlsx)
library(plyr)
fun <- function(file) {
df <- read.xlsx(file, sheetIndex=1)
}
df.big <- ldply(file, fun)
Run Code Online (Sandbox Code Playgroud)
Lyz*_*deR 32
这是rJava中的典型问题.它在XLConnect文档中得到了解答,该文档也使用rJava以与xlsx库相同的方式连接到excel.我引用这里的话:
"这是因为XLConnect(xlsx相同)需要将整个数据对象复制到JVM以便将其写入文件,并且JVM必须使用其内存大小的固定上限进行初始化.要更改此数量,您可以通过rJava的选项支持将参数传递给R的JVM,就像您可以通过命令行Java进程一样:
options(java.parameters = "- Xmx1024m")
Run Code Online (Sandbox Code Playgroud)
但是,请注意,在初始化JVM时,每个R会话只对这些参数进行一次计算 - 这通常是在您加载第一个使用Java支持的包之后,因此您应该尽早完成此操作.
如上所述,在加载任何库之前在脚本开头运行options函数,如果您通过Rstudio运行它,请确保在运行脚本之前重新启动它.
此外,请注意,根据您尝试解析的文件的大小,即使这样也无法确定.
| 归档时间: |
|
| 查看次数: |
34214 次 |
| 最近记录: |