相关疑难解决方法(0)

将大型xlsx文件导入R?

我想知道是否有人知道从"大"xlsx文件(~20Mb)导入数据的方法.我尝试使用xlsx和XLConnect库.不幸的是,两者都使用rJava,我总是得到同样的错误:

> library(XLConnect)
> wb <- loadWorkbook("MyBigFile.xlsx")
Error: OutOfMemoryError (Java): Java heap space
Run Code Online (Sandbox Code Playgroud)

要么

> library(xlsx)
> mydata <- read.xlsx2(file="MyBigFile.xlsx")
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
   java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)

我还尝试在加载rJava之前修改java.parameters:

> options( java.parameters = "-Xmx2500m")
> library(xlsx) # load rJava
> mydata <- read.xlsx2(file="MyBigFile.xlsx")
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
   java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)

或者在加载rJava之后(我认为这有点愚蠢):

> library(xlsx) # load rJava
> options( java.parameters = "-Xmx2500m")
> mydata <- read.xlsx2(file="MyBigFile.xlsx")
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
   java.lang.OutOfMemoryError: …
Run Code Online (Sandbox Code Playgroud)

excel r xlsx

68
推荐指数
6
解决办法
9万
查看次数

导入多张工作表的excel工作簿

我希望将一个 excel 工作簿导入到 R 中,其中包含多张工作表。但是,我似乎无法完成这项工作。我一直在使用的代码如下:

library(XLConnect)
# Read Excel Sheet
excel <- loadWorkbook("C:/Users/rawlingsd/Downloads/17-18 Prem Stats.xlsx")
# get sheet names
sheet_names <- getSheets(excel)
names(sheet_names) <- sheet_names
# put sheets into a list of data frames
sheet_list <- lapply(sheet_names, function(.sheet){readWorksheet(object=excel, .sheet)})
# limit sheet_list to sheets with at least 1 dimension 
# sheet_list2 <- sheet_list[sapply(sheet_list, function(x) dim(x)[1]) > 0]
# code to read in each excel worksheet as individual dataframes
for (i in 1:length(sheet_list)){assign(paste0("2018df", i), as.data.frame(sheet_list[i]))}
# define function to clean data …
Run Code Online (Sandbox Code Playgroud)

excel r xlconnect readxl

2
推荐指数
2
解决办法
2万
查看次数

标签 统计

excel ×2

r ×2

readxl ×1

xlconnect ×1

xlsx ×1