Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与xlsx包冲突并选择.files_Java_R_Xlsx_Rstudio - Fatal编程技术网

Java 与xlsx包冲突并选择.files

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更新到最新版本(v0.97.237)时,这个问题就开始了。如果我启动RStudio,然后加载xlsx(即
库(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
有什么好处
来自package
xlsx
?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)