我有多个.xls(〜100MB)文件,我希望从中将多个工作表(来自每个工作表)作为数据帧加载到R中。我尝试了各种功能,例如xlsx::xlsx2
和XLConnect::readWorksheetFromFile
,这两个功能始终运行很长时间(> 15分钟),并且从未完成,因此必须强制退出RStudio才能继续工作。
我也尝试过gdata::read.xls
,它确实完成了,但是每张纸要花费3分钟以上的时间,并且它不能像XLConnect::loadWorkbook
一样一次提取多张纸(这对加快我的流程非常有帮助。) >
执行这些函数所花的时间(而且我什至不确定如果让它们运行更长的时间,前两个函数是否会完成)对于我的管道来说太长了,我需要一次处理多个文件。有没有办法让它们更快地完成/完成?
[在很多地方,我看到了使用功能readxl::read_xls
的建议,该功能似乎被广泛推荐用于此任务,并且每张纸应该更快。但是,这给了我一个错误:
> # Minimal reproducible example: > setwd("/Users/USER/Desktop") > library(readxl) > data <- read_xls(path="test_file.xls") Error: filepath: /Users/USER/Desktop/test_file.xls libxls error: Unable to open file
我还进行了一些基本测试,以确保文件存在并且格式正确:
> # Testing existence & format of the file > file.exists("test_file.xls") [1] TRUE > format_from_ext("test_file.xls") [1] "xls" > format_from_signature("test_file.xls") [1] "xls"
以上使用的
test_file.xls
可用于here。任何建议都会使第一个功能运行得更快或read_xls
完全运行-谢谢!
[似乎某些用户可以使用readxl::read_xls
功能打开上面的文件,而其他用户则不能使用Mac OS和Windows使用最新版本的R
,Rstudio
和[ C0]。 readxl
尚未解决。
我有多个.xls(〜100MB)文件,我希望从中将多个工作表(来自每个工作表)作为数据帧加载到R中。我尝试了各种功能,例如xlsx :: xlsx2和XLConnect :: ......>
我下载了您的数据集并以这种方式读取了每个Excel工作表(例如,工作表“总体”和“区域”):
issue has been posted on the readxl GitHub
我将提出不同的工作流程。如果您恰好安装了LibreOffice,则可以通过编程将excel文件转换为csv。我有Linux,所以我可以在bash中进行操作,但是我确信它可以在macOS中使用。