使用read_excel的错误信息"错误:std :: bad_alloc"

时间:2015-07-02 12:18:12

标签: r readxl

我尝试使用read_excel()包中的readxl功能打开Excel文件。但我不知道如何指定Excel文件的路径。

当我按照答案中给出的步骤输入文件路径时,收到错误:

  

"错误:std :: bad_alloc"。

6 个答案:

答案 0 :(得分:4)

首先加载包:

library(readxl)

根据包development page,您只需将文件名指定为字符串,例如:

read_excel("my-old-spreadsheet.xls")
read_excel("my-new-spreadsheet.xlsx")

您还可以指定工作表的名称或编号:

read_excel("my-spreadsheet.xls", sheet = "data")
read_excel("my-spreadsheet.xls", sheet = 2)

使用getwd()确保您在正确的目录中。如果没有,请使用setwd()

进行更改

答案 1 :(得分:1)

如评论中所述,该错误消息是由文件大小问题引起的。请参阅以下网址:https://github.com/hadley/readxl/issues/150

答案 2 :(得分:0)

在我的情况下,我已经在LibreOffice Calc中打开了文件(你当然可以使用Excel但我不拥有它),删除包含合并单元格和彩色背景等的复杂标题行,将其手动简化为1行标题,然后保存文件。新的Excel文件要小得多,现在可以使用readxl::read_excel()导入。

也许软件也会以不同的方式在内部清理文件。

当然,仅当导入R是一次性任务,一个Excel文件最多只有几张时,这才有效。

答案 3 :(得分:0)

刚遇到此问题,当重新读取文件时,我读取成功!

正如vladdsm在github上指出的那样,关闭并重新打开Rstudio可以解决问题 https://github.com/tidyverse/readxl/issues/150#issuecomment-236883769

答案 4 :(得分:0)

在尝试将xlsx文件读入R环境时,我遇到了同样的问题。文件大小不大。重新安装readxl程序包后,该问题已解决。

答案 5 :(得分:-2)

我猜你的记忆有问题。也许你打开了其他程序,所以没有足够的内存来加载和处理 R 中的数据文件。如果数据文件很大,这可能会发生。

您可以在尝试读取 xlsx 文件时在任务管理器中轻松检查。

问候巴斯蒂