3

XLConnect を使用して Excel シートを R に読み込んでいます。それは非常にうまく機能します。ただし、コマンドを再実行すると (たとえば、Excel ファイルの値を変更した後)、関数がメモリ不足になります。

私が読んでいるファイル/シートには、18 列と 363 行の数値データがあります。

エラーメッセージは

Error: OutOfMemoryError (Java): Java heap space

これは、呼び出しの 2 回目の (同一の) 実行で表示されreadWorksheetFromFileます。この例の入力呼び出しを繰り返し実行して MWE を生成しようとしていますが、そのファイルではエラーを再現できないようです。

私が使用している Excel ファイルには、多くの相互接続されたシートがあり、約 3 MB です。私が読んでいるシートは他にもリンクされていますが、設定してありuseCachedValues = TRUEます。

最初の呼び出しを実行した後、Java メモリがクリアされていないように思えます。2 番目の呼び出しは、さらに多くのデータをメモリに格納しようとするため、呼び出しが失敗します。Java メモリでガベージ コレクションを強制することは可能ですか? 現在、唯一の解決策は R セッションを再起動することですが、これはクライアントにとって実用的ではありません。

Java メモリを拡張することでこれが解決されることはわかっていますが、それは不器用な解決策だと思います。以前の呼び出しからメモリをダンプする方法を見つけたいと思います。

また、より詳細な関数を使用してみましloadWorkbookreadWorksheet。同じエラーが発生します。

他に必要な有益な情報があれば教えてください!

4

1 に答える 1