2016-11-01 10 views
1

Rデータを書式設定されたExcelファイルにエクスポートし、RでXLConnectとxlsxパッケージの両方を正常に使用する必要があります。私は最近64ビットRに移行し、どちらも動作することができません。私は、他のパッケージの中にいくつかのOracle/Javaアーキテクチャの競合を経験しました。私はここに何か似たものがあると確信していますが、私はそれを打ち砕くことはできません。XLConnect:64ビットへの添付R

library(XLConnect)rJavaおよびXLConnectJarsを問題なく添付します。ここで

はエラーとセッション情報である:私はxlsxを添付しようとすると、

> 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  

は私が同様のエラーを取得します。

> 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を実行する必要があります。

+0

私は 'readxl'を使ってExcelファイルをインポートします。問題はありません。私はちょうどフォーマットされたExcel出力を必要とするいくつかのプロジェクトがあります。私の 'JAVA_HOME'変数は64ビットjreを指しています。 'rJava'はうまくロードされます.64ビットのJavaを使うべきです。 –

答えて

1

専門的に得ることなく、あなたは、これはあなたが投稿疑問を解決するにもかかわらずR.

の64ビット版で行くことにするJavaの64ビット版が必要になります、私はあなたが助けになると思いますJavaベースのXLConnectxlsxパッケージを放棄して、Excelに接続する方法があります。代わりに、openxlsxパッケージを使用してください。それは、他の2つのものと同じもの(はい、フォーマットされたExcelシートをエクスポートする)を行いますが、Javaに依存しません。

Error: OutOfMemoryError (Java): GC overhead limit exceeded.

:あなたはOutOfMemoryErrorsに直面されることはありません大きなテーブルで作業しながら、まず

は、Javaと64ビット/ 32ビットの問題を持っていないだけでなく、いくつかの利点があります

第2には、Javaベースのパッケージにエラーが表示されない場合でも、大きなテーブルで作業するには時間がかかります。 openxlsxにはこれらの問題はありません。

最終的な個人的な注意事項:最初はパッケージを切り替えることに躊躇しましたが、Javaベースのパッケージについて嫌いなことはすべて解決しました。構文は非常に似ています。

関連する問題