hdf5 パッケージを Linux マシンに正常にインストールしました。ループ内の多数の hdf5 ファイルからデータを読み込み、時系列を作成したいと考えています。各 hdf5 ファイルは異なる時間に対応しています。多くのファイル (1000 以上) を読み込んだ後、R は開いているファイルが多すぎると言います。ループを継続できるようにそれらを閉じる方法を見つけたいと思います。コードは次のとおりです。
fdate <- "200605312355" # the first date for my test loop
fmax <- 1400
arr <- vector()
for (i in 1:fmax){
fname <- paste(fdate,"_.h5") # path of h5 file
fid <- hdf5load(fname) # fid = NULL
arr[i] <- somevariable$data_array[lon,lat]
# would like to close the file here
fdate <- newdate(fdate,60*5) # a function that increments the date by seconds.
}
hdf5 パッケージには関数 hdf5cleanup が含まれており、クリーンアップするように見えますが、ファイル識別子が必要です。上記のコードの fid は NULL を返します。代わりにファイル名を挿入しようとします。つまり hdf5cleanup(fname) は R を中止させます。おそらく hdf5load はファイルを閉じるはずで、失敗します。その場合、system() コマンドなどを発行して接続を閉じる方法はありますか?
ちなみに、showConnections() は何も返さず、文字通り「説明クラス モード テキスト isopen can read can write」というヘッダー名だけを返します。
簡単に言えば、私の質問: hdf5load() でロードした後、R で hdf5 ファイルへの接続を閉じるにはどうすればよいですか?