45

我在加载 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 问题。

4

6 回答 6

1

我总是在顶部使用这些行:

options(java.parameters="-Xmx4000m")
options(java.home="C:/Program Files/Java/jre7/")

看看是否有帮助。

于 2014-10-22T12:54:01.977 回答
0

尝试清除您的临时文件

控制面板 > 程序 > Java

看看它是否有效。

于 2014-05-08T20:33:16.410 回答
0

我最近在新机器上安装 R 时遇到了这个问题。确保您使用的是正确版本的 Java(32 位与 64 位)以匹配您的 R 版本。请注意,Java 的 64 位版本不在他们的主下载页面上,而是在他们的“手册”d /l 页面在这里

于 2014-09-19T16:42:55.063 回答
0

我推荐 Hadley 的readxl包,它从CRAN安装,没有 Java 依赖项。

library("readxl")
my_data <- read_excel(filename, sheet = 1)
于 2017-02-16T12:12:40.153 回答
0

较新的软件包之一是 rio 软件包。它解决了我遇到的许多导入和导出问题,并且具有仅需要一个库来导入/导出许多不同格式的额外好处。它根据文件名的扩展名确定格式。即使它使用基本相同的功能,它似乎也比其他一些软件包运行得更干净、更快。例如,对于 Excel 文件,它使用该write.xlsx函数,但在大型数据集上对我有用,但实际上write.xlsx并没有。包文档可以在这里找到。

install.packages("rio")    
library(rio)

import("myfile.xlsx")
export(df, "myfile.xlsx")
于 2017-02-08T11:59:00.413 回答
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")
于 2016-11-30T17:31:31.523 回答