当我尝试使用'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)
之前有其他人遇到此问题吗?非常感谢您对此问题的任何帮助!
答案 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错误消息不是非常具体。