我在加载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问题。
答案 0 :(得分:1)
我总是在顶部使用这些行:
options(java.parameters="-Xmx4000m")
options(java.home="C:/Program Files/Java/jre7/")
看看是否有帮助。
答案 1 :(得分:0)
尝试从
清除临时文件控制面板&gt;节目&gt; Java
看看它是否有效。
答案 2 :(得分:0)
我最近在新机器上安装了R这个问题。确保您使用的是正确版本的Java(32位与64位)以匹配您的R版本。请注意,64位版本的Java在其主下载页面上找不到,但在“手动”d上找不到/ l页面here。
答案 3 :(得分:0)
尝试其中一些套餐:
install.packages("XLConnect")
install.packages("xlsxjars")
install.packages("xlsx")
然后加载library()
使用read.xlsx2("blah.xlsx",sheetIndex=NULL)
不要使用file.choose
,只需将文件直接插入read.xlsx2
函数
或
read.xlsx2("blah.xlsx",sheetName=NULL")
答案 4 :(得分:0)
其中一个较新的软件包是rio软件包。它解决了我遇到的许多导入和导出问题,并且还有一个额外的好处,即只需要一个库来导入/导出许多不同的格式。它根据文件名的扩展名确定格式。它似乎比其他一些软件包运行更干净,更快,即使它使用的功能基本相同。例如,对于Excel文件,它使用write.xlsx
函数,但是当write.xlsx
没有时,它对我有大数据集。可以找到包文档here。
install.packages("rio")
library(rio)
import("myfile.xlsx")
export(df, "myfile.xlsx")
答案 5 :(得分:0)
我推荐使用Hadley的readxl
软件包,它从CRAN开始安装,没有Java依赖项。
library("readxl")
my_data <- read_excel(filename, sheet = 1)