5

当我尝试使用“XLConnect”包将 excel 文件读入 R 时,以下错误不断出现。

Error in ls(envir = envir, all.names = private) : 
invalid 'envir' argument

我实际上在使用其他读取 excel 文件的包(如包'xlsx'和'xlsReadWrite')时遇到了这个错误。多次重新启动 R 会话解决了这个问题,这让我认为我在 R 会话中所做的其他事情正在改变环境并且不再允许我加载 excel 文件。以下是导致此错误的最新代码示例。在这种情况下,我知道以下编码序列导致错误出现 - 但为什么会发生这种情况?如果我需要 chron 包,我该如何克服这个错误。

library("XLConnect")
wb2 <- loadWorkbook("excel_file", create = FALSE)
library(chron)
wb2 <- loadWorkbook("excel_file", create = FALSE)

其他人之前遇到过这个问题吗?非常感谢您对此问题的任何帮助!

4

2 回答 2

1

在重新打开工作簿之前,请尝试删除对先前打开的工作簿的引用,因此: rm(wb2) wb2 <- loadWorkbook("excel_file", create = FALSE)

此外,请确保在运行 R 测试时 Excel 或任何其他程序未打开“excel_file”。

我在使用 XLConnect 时看到了同样的错误,以上似乎有帮助。

于 2013-10-04T15:49:13.830 回答
1

有几次这个问题,调用堆栈看起来像在抛出“OutOfMemory”异常时生成了这条消息。

为了解决这个问题,我使用了:

options( java.parameters = "-Xmx4g" )

增加 rJava 能够使用的堆大小。

调试有options(error=utils::recover)很大帮助,因为 R 错误消息不是很具体。

于 2016-09-22T11:00:42.117 回答