Java 与xlsx包冲突并选择.files
我在加载xlsx包和使用choose.files时遇到了一个奇怪的问题 当我将RStudio更新到最新版本(v0.97.237)时,这个问题就开始了。如果我启动RStudio,然后加载xlsx(即Java 与xlsx包冲突并选择.files,java,r,xlsx,rstudio,Java,R,Xlsx,Rstudio,我在加载xlsx包和使用choose.files时遇到了一个奇怪的问题 当我将RStudio更新到最新版本(v0.97.237)时,这个问题就开始了。如果我启动RStudio,然后加载xlsx(即库(xlsx)),那么包的加载就可以了。但是,如果我随后尝试使用choose.files(),RStudio会冻结(实际上它会持续运行,如果不使用Win7任务管理器结束它就无法关闭)。如果我启动RStudio并首先使用choose.files,它就可以正常工作。如果然后运行库(xlsx)行,则不会加载x
库(xlsx)
),那么包的加载就可以了。但是,如果我随后尝试使用choose.files()
,RStudio会冻结(实际上它会持续运行,如果不使用Win7任务管理器结束它就无法关闭)。如果我启动RStudio并首先使用choose.files,它就可以正常工作。如果然后运行库(xlsx)
行,则不会加载xlsx包。它给出了下面的错误
我尝试过重新安装xlsx包(以及xlsxjars和rJava),但没有成功。也没有重新安装Java
有什么建议吗?我使用的是rv2.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
filename尝试从中清除临时文件
控制面板>程序>Java
看看它是否有效 我最近在一台新机器上安装R时遇到了这个问题。确保您使用的是正确的Java版本(32位vs 64位)以匹配您的R版本。请注意,64位版本的Java不在其主下载页上,而是在其“手动”d/l页上。我始终在顶部使用以下行:
options(java.parameters="-Xmx4000m")
options(java.home="C:/Program Files/Java/jre7/")
看看这是否有帮助 试试这些软件包:
install.packages("XLConnect")
install.packages("xlsxjars")
install.packages("xlsx")
然后加载库()
使用read.xlsx2(“blah.xlsx”,sheetIndex=NULL)
不要使用文件。选择
,只需将文件直接插入read.xlsx2
函数即可
或
其中一个较新的方案是里约方案。它解决了我遇到的许多导入和导出问题,并且具有只需要一个库就可以导入/导出许多不同格式的额外好处。它根据文件名的扩展名确定格式。它似乎比其他一些软件包运行得更干净、更快,尽管它使用的功能基本相同。例如,对于Excel文件,它使用了
write.xlsx
函数,但在大型数据集上对我有效,而write.xlsx
没有。可以找到软件包文档
我推荐Hadley的
readxl
包,它是从没有Java依赖项的地方安装的
library("readxl")
my_data <- read_excel(filename, sheet = 1)
库(“readxl”)
my_数据看起来更像是Java安装的问题,而不是R.Adding标记的问题。您应该记录Java的版本号。这与choose.files
没有明显的联系。如果我不使用choose.files,xlsx软件包将加载并正常工作。xlsx唯一不起作用的时候是在使用choose.files后尝试加载它。我有Java版本1.7.0 “使用choose.files后再使用”是什么意思?有一个名为file的基函数。选择。问题是R2.15.2中的C堆栈大小从10MB增加到64MB(由于类似错误,R3.x.x中的C堆栈大小又减少到16MB)。调用file.choose()后,请查看错误消息“无法为对象堆保留足够的空间”,该文件似乎使用了一些内存。在调用library(xlsx)
之前,我猜调用.jinit(parameters=c(“-Xrs”,“-Xss1m”)
可以解决这个问题。我建议您使用WriteXLS包:这个包对Rstudio更友好。在调用read.xlsx2()时安装XLConnect
有什么好处
来自packagexlsx
?XLConnect是一个允许从R中读取、写入和操作Microsoft Excel文件的软件包。这只是读取Excel文件的另一种方式。只是提供我的建议,以其他方式阅读excel文件。但对于xlsx,您确实需要xlsxjars软件包这两个软件包的目标相同:XLConnect
:提供读取、写入和格式化Excel数据的全面功能xlsx
:提供R函数来读取/写入/格式化Excel 2007和Excel 97/2000/XP/2003文件格式。但是,也需要同时安装XLConnect
。我推荐openxlsx
,它功能齐全,不依赖于java
read.xlsx2("blah.xlsx",sheetName=NULL")
install.packages("rio")
library(rio)
import("myfile.xlsx")
export(df, "myfile.xlsx")
library("readxl")
my_data <- read_excel(filename, sheet = 1)