我有多个 .xls (~100MB) 文件,我想从中将多个工作表(从每个工作表)作为数据帧加载到 R 中。我尝试了各种函数,例如xlsx::xlsx2
and XLConnect::readWorksheetFromFile
,它们总是运行很长时间(> 15 分钟)并且永远不会完成,我必须强制退出 RStudio 才能继续工作。
我也试过gdata::read.xls
,它确实完成了,但每张纸需要超过 3 分钟,而且它不能像XLConnect::loadWorkbook
can一样一次提取多张纸(这对加快我的管道非常有帮助)。
执行这些函数所需的时间(我什至不确定如果让它们运行更长时间,前两个函数是否会完成)对于我的管道来说太长了,我需要同时处理许多文件。有没有办法让这些更快地完成/完成?
在几个地方,我看到了使用该功能的建议,该功能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
Run Code Online (Sandbox Code Playgroud)
我还进行了一些基本测试,以确保文件存在且格式正确:
> # 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"
Run Code Online (Sandbox Code Playgroud)
在test_file.xls
上面使用的是可在这里。在使第一个功能运行得更快或read_xls
根本运行方面的任何建议将不胜感激- 谢谢!
这似乎有些用户能够打开上面使用的文件readxl::read_xls …