我在加载xlsx包和使用choose. files时遇到了一个奇怪的问题。
这个问题在我将RStudio更新到最新版本(v0.97.237)时就开始了。如果我启动RStudio,然后加载xlsx(即library(xlsx)
)包加载得很好。但是,如果我尝试使用choose.files()
,RStudio就会冻结(实际上它会持续运行,如果不使用Win7任务管理器结束它,就无法关闭它)。如果我先启动RStudio并使用choose.files,它就能正常工作。如果我运行library(xlsx)
行,xlsx包将无法加载。它给出下面的错误。
我尝试重新安装xlsx包(沿着xlsxjars和rJava),但没有成功。也没有重新安装Java。
有什么建议吗?我用的是R v2.15.2。
library(xlsx)
Loading required package: xlsxjars
Loading required package: rJava
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error : .onLoad failed in loadNamespace() for 'xlsxjars', details:
call: .jinit()
error: Cannot create Java virtual machine (-4)
Error: package ‘xlsxjars’ could not be loaded
编辑:问题在这里。抱歉造成任何混淆。当我输入这个:
filename<-file.choose() #select file
library(xlsx)
mydata<-read.xlsx(filename,1) #load datafile
我可以成功地选择文件名,但xlsx包无法加载,因此我无法打开数据文件。上面的错误。但是,如果我运行这个(在我关闭并重新启动RStudio之后):
library(xlsx)
filename<-file.choose() #select file
mydata<-read.xlsx(filename,1) #load datafile
xlsx包正确加载,但file.choose
导致R无限期运行,因此脚本冻结,我无法加载文件。使用choose.files()
也是如此。我不知道为什么这两个东西(xlsx和file.choose
/choose.files
)会冲突,但看起来它们是因为我只能使用一个或另一个,这取决于我先使用哪一个。
编辑2:我在不同的计算机上尝试过(相同的操作系统,相同版本的R,RStudio和Java),我遇到了同样的问题。
编辑3:我转换回RStudio v0.97.90,问题就消失了。我想这是RStudio的问题。
6条答案
按热度按时间yqyhoc1h1#
我总是在顶部使用这些行:
看能不能帮上忙。
s1ag04yj2#
尝试清除您的临时文件从
控制面板>程序> Java
看看能不能用
eoigrqb63#
我最近在一台新机器上安装R时遇到了这个问题。确保您使用的是正确的Java版本(32位vs 64位),以匹配您的R版本。请注意,64位版本的Java不在他们的主下载页面上,而是在他们的“手册”d/l页面here上。
ha5z0ras4#
试试这些软件包:
然后加载
library()
使用
read.xlsx2("blah.xlsx",sheetIndex=NULL)
不要使用
file.choose
,只需将文件直接插入到read.xlsx2
函数中或
pkbketx95#
其中一个较新的软件包是rio软件包。它解决了我遇到的许多导入和导出问题,并且还有一个额外的好处,即只需要一个库就可以导入/导出许多不同的格式。它根据文件名的扩展名确定格式。它似乎也比其他一些软件包运行得更干净、更快,尽管它使用的功能基本相同。例如,对于Excel文件,它使用
write.xlsx
函数,但对于大型数据集,它可以工作,而write.xlsx
不能。软件包文档可以在here中找到。vfh0ocws6#
我推荐Hadley的
readxl
包,它从CRAN安装,没有Java依赖。