web-dev-qa-db-ja.com

xlsxパッケージおよびchoose.filesと競合します

Xlsxパッケージのロードとchoose.filesの使用で奇妙な問題が発生しています。

この問題は、RStudioを最新バージョン(v0.97.237)に更新するとすぐに始まりました。 RStudioを起動してからxlsx(つまり、library(xlsx))をロードすると、パッケージは正常にロードされます。ただし、その後choose.files()を使用しようとすると、RStudioがフリーズします(実際には、RStudioは継続的に実行され、Win7タスクマネージャーで終了しないと閉じることができません)。 RStudioを起動し、最初にchoose.filesを使用すると、問題なく動作します。次にlibrary(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
_

ファイル名は正常に選択できますが、xlsxパッケージの読み込みに失敗するため、データファイルを開くことができません。上記のエラーが発生します。ただし、代わりにこれを実行すると(RStudioを閉じて再起動した後):

_library(xlsx)
filename<-file.choose() #select file
mydata<-read.xlsx(filename,1) #load datafile
_

Xlsxパッケージは正しく読み込まれますが、_file.choose_によりRが無期限に実行されるため、スクリプトがフリーズし、ファイルを読み込めません。これは、choose.files()を使用する場合にも当てはまります。これらの2つ(xlsxと_file.choose_/_choose.files_)が競合する理由はわかりませんが、どちらを最初に使用するかによって、どちらか一方しか使用できないため、どちらか一方しか使用できないようです。

編集2:別のコンピューター(同じOS、同じバージョンのR、RStudio、およびJava)でこれを試しましたが、同じ問題が発生します。

編集3:RStudio v0.97.90に変換し直したところ、問題は解決しました。 RStudioの問題だと思います。

45
James

私は常に上部にこれらの行を使用します:

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

多分それが役立つかどうかを確認してください。

1
Romain

新しいパッケージの1つはrioパッケージです。それは私が抱えていたインポートとエクスポートの問題の多くを解決し、多くの異なるフォーマットをインポート/エクスポートするために1つのライブラリだけを必要とするという追加の利点があります。ファイル名の拡張子に基づいて形式を決定します。また、基本的に同じ機能を使用しているにもかかわらず、他のいくつかのパッケージよりもクリーンで高速に実行されているようです。たとえば、Excelファイルでは、write.xlsx関数を使用しますが、write.xlsxが機能しなかった場合、大きなデータセットでは機能しました。パッケージのドキュメントは ここ にあります。

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

import("myfile.xlsx")
export(df, "myfile.xlsx")
0

最近、新しいマシンにRをインストールするときにこの問題が発生しました。 Rのバージョンと一致する正しいバージョンのJava(32ビットvs 64ビット)を使用していることを確認してください。64ビットバージョンのJavaメインのダウンロードページではなく、「手動」のd/lページにあります ここ

0
Leo

Hadleyのreadxlパッケージをお勧めします。これは、 [〜#〜] cran [〜#〜] からJava依存関係なしでインストールされます。

library("readxl")
my_data <- read_Excel(filename, sheet = 1)
0
Tom Kelly

から一時ファイルをクリアしてみてください

コントロールパネル>プログラム> Java

それが機能するかどうかを確認します。

0
zyduss