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の問題だと思います。
私は常に上部にこれらの行を使用します:
options(Java.parameters="-Xmx4000m")
options(Java.home="C:/Program Files/Java/jre7/")
多分それが役立つかどうかを確認してください。
新しいパッケージの1つはrioパッケージです。それは私が抱えていたインポートとエクスポートの問題の多くを解決し、多くの異なるフォーマットをインポート/エクスポートするために1つのライブラリだけを必要とするという追加の利点があります。ファイル名の拡張子に基づいて形式を決定します。また、基本的に同じ機能を使用しているにもかかわらず、他のいくつかのパッケージよりもクリーンで高速に実行されているようです。たとえば、Excelファイルでは、write.xlsx
関数を使用しますが、write.xlsx
が機能しなかった場合、大きなデータセットでは機能しました。パッケージのドキュメントは ここ にあります。
install.packages("rio")
library(rio)
import("myfile.xlsx")
export(df, "myfile.xlsx")
最近、新しいマシンにRをインストールするときにこの問題が発生しました。 Rのバージョンと一致する正しいバージョンのJava(32ビットvs 64ビット)を使用していることを確認してください。64ビットバージョンのJavaメインのダウンロードページではなく、「手動」のd/lページにあります ここ 。
Hadleyのreadxl
パッケージをお勧めします。これは、 [〜#〜] cran [〜#〜] からJava依存関係なしでインストールされます。
library("readxl")
my_data <- read_Excel(filename, sheet = 1)
から一時ファイルをクリアしてみてください
コントロールパネル>プログラム> Java
それが機能するかどうかを確認します。