私は大きなファイルをいくつか用意しており、それらにアクセスするためにいくつかの異なるI/O機能を使用しています。最も一般的なのはbigmemory
パッケージです。バッファがフラッシュされているかどうかのテストR
ファイルに書き込むときに、出力バッファをフラッシュする難しい方法を学びました。そうしないと、データが保存されたかどうかにかかわらず、すべてのベットがオフになります。しかし、これは非常に長い待ち時間につながる可能性がありますが、bigmemory
は何分(何分)かかります。なぜこのようなことが起こるのか分かりません。いつも起こるとは限らず、簡単に再現されません。
特に、bigmemory
の場合、I/OバッファがRでフラッシュされているかどうかを判断する方法はありますか?オペレーティングシステムが重要な場合は、そのように答えを制約することを自由にしてください。
回答がbigmemory
を超えて一般化できる場合は、他のメモリマッピング関数やI/Oストリームに依存することがあります
バッファがフラッシュされたかどうかをチェックする良い解決策がない場合、バッファがフラッシュされたとみなすことができるケースがありますか?私。 flush()
を使用しています。
アップデート:これらはすべてバイナリ接続であることを明確にする必要があります。 @ RichieCottonはisIncomplete()
と書いてありましたが、ヘルプドキュメントではテキスト接続についてしか触れていません。バイナリ接続で使用できるかどうかは不明です。
'bigmemory'での使用についてはわかりませんが、' isIncomplete'は通常の接続では機能します。 –
ありがとう!接続に関する非常に限定されたヘルプ情報は、isIncompleteがテキスト接続の出力に適していることだけを示しています。バイナリ接続で運が良かったですか? – Iterator