与xlsx包和choose.files冲突
加载xlsx包并使用choose.files,我遇到一个奇怪的问题。
一旦我将RStudio更新到最新版本(v0.97.237),这个问题就开始了。 如果我启动RStudio,然后加载xlsx(即library(xlsx)
),则软件包加载正常。 但是,如果我尝试使用choose.files()
,则RStudio会冻结(实际上,它会持续运行,如果不使用Win7任务pipe理器就不能closures它)。 如果我启动RStudio并首先使用choose.files,它工作得很好。 如果我然后运行library(xlsx)
行,xlsx包将不会加载。 它给出了下面的错误。
我已经尝试重新安装xlsx包(与xlsxjars和rJava一起),但是没有奏效。 也没有重新安装Java。
有什么build议么? 我正在使用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
编辑:这是问题。 对不起,有任何困惑。 当我input这个:
filename<-file.choose() #select file library(xlsx) mydata<-read.xlsx(filename,1) #load datafile
我可以成功select文件名,但xlsx包加载失败,所以无法打开数据文件。 我得到上面的错误。 但是,如果我运行这个(而我已经closures并重新启动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问题。
我总是在顶部使用这些行:
options(java.parameters="-Xmx4000m") options(java.home="C:/Program Files/Java/jre7/")
看看是否有帮助。
尝试清除你的临时文件
控制面板>程序> Java
看看它是否有效。
我最近遇到了这个问题,在新机器上安装了R。 确保使用正确版本的Java(32位与64位)以匹配您的R版本。请注意,在其主要下载页面上找不到64位版本的Java,但在其“手动”d / l页面在这里 。
尝试一下这些软件包:
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")
其中一个较新的软件包是rio软件包。 它解决了我所拥有的许多导入和导出问题,并且还具有只需要一个库导入/导出许多不同格式的附加好处。 它根据文件名的扩展名确定格式。 它也似乎比其他一些软件包更干净,更快,即使它使用的function基本相同。 例如,对于Excel文件,它使用write.xlsx
函数,但是在write.xlsx
没有的情况下,对于大数据集已经有效。 包文档可以在这里find。
install.packages("rio") library(rio) import("myfile.xlsx") export(df, "myfile.xlsx")
我推荐Hadley的readxl
包,它从没有Java依赖的CRAN安装。
library("readxl") my_data <- read_excel(filename, sheet = 1)