jnobuyukiのブログ

JavaScriptとR言語を中心に研究活動に役立つwebアプリケーション技術について考えていきます。twitter ID: @j_nobuyuki

R言語でサイズの大きいファイルの読み込み

今回は、ファイルの入力に関するヒントを書きます。

ファイルからの入力はread.table関数

R言語では、baseパッケージの中にread.table関数、read.csv関数などがあります。これを利用すれば、簡単にテキストファイルとして保存されているデータを読み込めます。しかし、read.table関数で作成されるdata.frameオブジェクトは容量制限が結構きびしく、20変数で100万行あるようなデ−タだと容量ぎりぎりになります。問題は、ファイルを中までしか読んでいなくても警告しか出ないことです。そのままコードが走ってしまうので、きちんと確認しないと実はファイルがうまく読み込めていなかったということになりかねません。

data.tableパッケージの利用

そこで、data.tableパッケージを利用します。data.tableオブジェクトは、data.frameよりも大きなデータを高速に読み込むことができます。
data.tableオブジェクトに入力するにはfread関数を用います。

#data.tableパッケージの起動
library(data.table)

#ファイルの読み込み
dat <- fread("filename.txt", sep = "\t")