ls出错(envir = envir,all.names = private)?

时间:2013-05-20 19:32:36

标签: r excel

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

在重新打开工作簿之前,请尝试删除对先前打开的工作簿的引用,以便: RM(WB2) wb2&lt; - loadWorkbook(“excel_file”,create = FALSE)

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

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

答案 1 :(得分:1)

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

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

options( java.parameters = "-Xmx4g" )

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

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