【发布时间】:2020-07-31 15:47:04
【问题描述】:
我正在尝试将 .xls 文件读入 R 数据帧。我试过了:
library(readxl)
dfTest <- readxl::read_excel("file_path/file.xls")
这给了我:
Error:
filepath: file_path/file.xls
libxls error: Unable to open file
接下来我尝试了:
library(xlsx)
dfTest <- xlsx::read.xlsx("file_path/file.xls",1)
结果:
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
java.io.IOException: block[ 1462 ] already removed - does your POIFS have circular or duplicate block references?
我试过了:
library(openxlsx)
dfTest <- openxlsx::read.xlsx("file_path/file.xls")
结果:
Error in read.xlsx.default("file_path/file.xls") :
openxlsx can not read .xls or .xlm files!
我尝试的最后一件事是:
library(RODBC)
conn <- odbcConnectExcel("file_path/file.xls")
这给了我:
Error in odbcConnectExcel("file_path/file.xls") :
odbcConnectExcel is only usable with 32-bit Windows
有人知道如何读取 Excel 文件吗?将文件保存为 .csv 文件并将其加载到 R 中工作得很好。但是,我有大量文件最终想要循环读取和处理。至少可以说,手动将所有内容保存为 .csv 很麻烦。 我在更改正在使用的计算机上的软件安装时受到限制。
【问题讨论】:
-
这有点像在黑暗中拍摄,但您是否尝试过将
odbcConnectExcel与 32 位 R 一起使用?我知道在使用 RODBC 连接到 32 位 MS Access 数据库时我必须这样做。 -
我想过,但有没有办法在不改变我的安装的情况下使用 32 位 R?我正在使用的计算机上没有管理员权限...
-
只要安装好了(我认为默认的 R 安装会同时安装 32 位和 64 位版本),您应该可以安装。我能够在我处于相同情况的工作计算机上执行此操作。对于 RStudio,工具 -> 全局选项 -> 常规应该允许您切换正在使用的版本。您必须重新启动 RStudio 才能使其生效(稍后再切换回来)。我使用这种方法进行开发,然后切换到一个批处理文件,然后我只指定了 32 位 Rscript 可执行文件
C:\Program Files\R\R-4.0.0\bin\i386\Rscript myScript.R的路径 -
不幸的是对我不起作用。我只安装了 64 位版本而没有安装 32 位版本,我无法轻松/快速地更改安装(工作计算机)。我通过在 VBA 中使用将所有 .xls 文件转换为 .csv 文件的宏重新解决了这个问题。 .csv 文件读入 R 没有问题。无论如何,我仍然保留这个问题。也许有人有一个想法,也许这对其他人有用。我想 .xls 文件的编码有些奇怪......
标签: r excel xlsx readxl openxlsx