参考文献はじめに最近、数GBを超えるテキストデータを扱うようになり、今更ながら、Rのファイル読み込み関数の速度比較について一度検討してみた。今回、以下の3つのファイル読み込み関数について調査してみた。.csv)が用意できればと考えている。文字列生成について調べてみた。最初に見つかったのが、opensslコマンドを使う方法である。opensslコマンドを用いた、ランダム文字列の生成ランダム文字列を生成する、opensslコマンドの基本文法としては以下のようだ。0m0.031stestR.txtファイルで、約1000万文字(行)、20MBほどのファイルが生成できた。これだと、生成速度が若干遅いので、別の方法も検討してみる。echoとtrコマンドを用いた文字列の生成echoとtrコマンドを組み合わせると、改行した文字列が作れるようだ。'\n'helloworld1helloworld2helloworld3helloworld4helloworld5まぁ、いま思うと、連番の数字だけでも良いように思う。test1.txt1000万行、79MBほどのファイルが生成できた。こっちも、生成に結構時間がかかる。単純に、連番数字の生成の場合なら、seqというコマンドがあるようだ。コマンドの文法もシンプルで良い。512345また、同じく連番数字で2000万行を生成してみたが、、結構速い。「echoとtr」よりも10倍くらい速い。test2.txt114MBほどのファイルが生成できた。echoとtrコマンドの時より、ファイルサイズが大きいのが気がかりだが、とりあず速いので、seqコマンドでやってみる。コマンドで実行した結果である。1m3.527s検証用ファイルが生成できたところで、ようやくRでの読み込みをやってみる。Rでのファイル読み込み検証utils::read.table関数でのファイル読み込みR上で、read.table関数で読み込んでみて、ちゃんと読み込めているかをしてみる。((いちおう、dim関数とtail関数で確かめた(省略)。111.173data.table::fread関数でのファイル読み込みdata.tableパッケージをインストールして、読み込む。r-datatable.com早速、fread関数を試してみる。8.032readr::read_csv関数でのファイル読み込みreadrパッケージをインストールして、読み込む。速度比較の結果ファイルサイズ、読み込み速度の結果を関数ごとにまとめてみる。63.369速度比較結果のplotlyグラフ比較結果をplotlyグラフにしてみる。速いとは聞いていたが、ダントツで、freadでのファイル読み込みが速かった。rows3つの関数の出力とも、一の位が丸まってるので、Rの問題なんだろうか。(2020-02-29)を使ってるのでバージョンの問題なのか。数字の連番なら、行名を入れればよさそうだけど、、、とりあえず、この問題は今回スキップすることにした。R上の全てのデータ・変数を消すコマンドrm(list=ls())ベクトルのメモリを使い切りましたへの対応これは、今回でたエラーメッセージである。.Renvironと設定すると、ベクトルサイズの上限を変更できる。実メモリと関係なく、上限メモリを設定するので良いらしい。上限32GBの設定Sys.setenv('R_MAX_VSIZE'=32000000000)で可能のようだ。R言語、データ分析、コマンドライン、プログラミングについての技術資料・自己アップデート・データ解析や解釈の悩み事、あと色々とまとめています。最近は、、Rでのデータ解析を中心にまとめています。南国のビーチパラソルの下で、Rを打ってる日常を求めて・・・あと、もう少しKyobashiで頑張りましょう。ブログの内容は、個人の理解・意見・見解です。ブログ記事内容は予告なく公開後に改変されることがあります。誤りを見つけた場合は、コメント欄などでお知らせいただけると助かります。etc当サイトはリンクフリーです。リンクを貼る際の許可は必要ありません。引用時には、記事のリンクなどを記載いただけると励みになります。(1)はてなブログをはじめよう!skumeさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。