将 .xlsx 文件读入 R

3

我正在尝试将一个Excel文件读入R中。这个文件位于当前工作目录下,具体如下:

 > list.files()
 [1] "Keuren_Op_Afspraak.xlsx"

我安装了XLConnect,并正在进行以下操作:

library(XLConnect)
demoExcelFile <- system.file("Keuren_Op_Afspraak.xlsx", package = "XLConnect")
wb <- loadWorkbook(demoExcelFile)

但是这个操作会让我出现错误:

Error: FileNotFoundException (Java): File '' could not be found - you may specify to automatically create the file if not existing.

但我不明白这是从哪里来的。有什么想法吗?

1
可能是将.xlsx文件导入R的重复问题。 - user3710546
3个回答

5

我建议使用readxl包。它是用C语言编写的,所以速度更快。而且它似乎可以更好地处理大文件。命令如下:

library(readxl)
wb <- read_excel("Keuren_Op_Afspraak.xlsx")

3
你也可以使用xlsx包。
library(xlsx)
wb <- read.xlsx("Keuren_Op_Afspraak.xlsx", sheet = 1)

编辑:@Verena

您也可以更快地使用此功能:

wb <- read.xlsx2("Keuren_Op_Afspraak.xlsx", sheet = 1)

1
从这个包中,我会使用read.xlsx2("Keuren_Op_Afspraak.xlsx", sheet=1),它速度更快。 - Verena Haunschmid

2
你需要修改你的代码,如下所示:
library(XLConnect)
demoExcelFile <- "Keuren_Op_Afspraak.xlsx"
wb <- loadWorkbook(demoExcelFile)

您可能是从这里获取的示例: http://www.inside-r.org/packages/cran/XLConnect/docs/loadWorkbook 此行代码:
system.file("demoFiles/mtcars.xlsx", package = "XLConnect")

获取软件包中的示例文件的方法是使用zip文件下载XLConnect并查看文件夹结构,您会发现其中有一个名为demoFiles的文件夹,其中包含mtcars.xlsx文件。而参数package="XLConnect"告诉该方法在此软件包中查找文件。

如果您在命令行中键入它,则返回文件的绝对路径:

"C:/Users/Expecto/Documents/R/win-library/3.1/XLConnect/demoFiles/mtcars.xlsx"

使用 loadWorkbook,您只需要传递相对或绝对文件路径即可。


@ExpectoPartonum,谢谢。我已经尝试过了,但是出现了内存错误:Error: OutOfMemoryError (Java): Java heap space。您对此有什么想法吗? - Marc van der Peet
你的文件有多大? - Verena Haunschmid
@MarcvanderPeet,也许你需要增加堆大小:options(java.parameters = "-Xmx1000m")(插入适合你的任何数字,但当然你必须注意你的机器有多少内存) - Verena Haunschmid
@MarcvanderPeet 你也可以尝试分别加载每个工作表(如果你有多个)。 - Verena Haunschmid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接