首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XLConnect:附加到64位R

XLConnect:附加到64位R
EN

Stack Overflow用户
提问于 2016-11-01 15:45:39
回答 1查看 1.3K关注 0票数 1

我需要将一些R数据导出到格式化的excel文件中,并在R中成功地使用了XLConnect和xlsx包。我最近搬到了64位R,两人都无法工作。我在其他软件包中处理了一些Oracle/Java体系结构冲突。我相信这里也发生了类似的事情,但我无法破解。

当我调用library(XLConnect)时,rJavaXLConnectJars都没有问题地附加。

下面是错误和会话信息:

代码语言:javascript
复制
> library(XLConnect)
Loading required package: XLConnectJars
Error : .onLoad failed in loadNamespace() for 'XLConnect', details:
  call: .jfindClass(as.character(class))
  error: class not found
Error: package or namespace load failed for ‘XLConnect’

> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] XLConnectJars_0.2-12

loaded via a namespace (and not attached):
[1] rsconnect_0.4.3 tools_3.3.1     rJava_0.9-8    

当我试图附加xlsx时,也会出现类似的错误。

代码语言:javascript
复制
> library(xlsx)
Loading required package: rJava
Loading required package: xlsxjars
Error : .onAttach failed in attachNamespace() for 'xlsx', details:
  call: .jnew("org/apache/poi/xssf/usermodel/XSSFWorkbook")
  error: java.lang.UnsupportedClassVersionError: Bad version number in .class file
Error: package or namespace load failed for ‘xlsx’

如果切换到32位R,XLConnectxlsx都能正常运行。我真的需要运行64位R为其他要求。

EN

回答 1

Stack Overflow用户

发布于 2016-11-02 09:32:57

在不涉及技术细节的情况下,您将需要64位版本的Java才能与64位版本的R.

尽管这将解决您发布的问题,但我认为,通过放弃基于Java的XLConnectxlsx-packages连接到Excel,您将得到更多的帮助。相反,使用openxlsx-package。它所做的事情(是的,也导出格式化的Excel表)与其他两个相同,但不依赖于Java。

除了Java没有64位/32位问题之外,还有一些优点:

首先,在处理大型表时,您将不会遇到OutOfMemoryErrors:

错误: OutOfMemoryError (Java):超过GC开销限制。

其次,即使基于Java的包没有显示错误,使用大型表也需要很长时间。openxlsx没有这些问题。

最后,也是个人观点:一开始我不太愿意在包之间切换,但它解决了所有我不喜欢的基于Java的包,语法非常相似。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40363572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档