2016-05-23 3 views
3

data.tableに巨大なデータセットを読み込む必要があります。実際には、私はすべてのデータセットを必要とせず、特定の列に特定の値を持つ行のみを必要とします。私は、読み取り+サブセットのプロセスでそれを実行することができます。read +サブセットではなく `data.table`を行のフィルタリングで読む

dt <- read.table(.......) 
df_filtered <- subset(dt, Hash == '1AB3F' | Hash == 'DC167' | Hash == 'BCBC5') 

行だけを読み込む方法はありますがHash列の制限を満たしていますか?

+9

データセット全体を高速で読み取るには 'fread'を試してください。 – Divi

+0

@Divi - ありがとうございました – Loom

+2

%c( '1AB3F'、 'DC167'、 'BCBC5')のハッシュ%は、複数の比較と同じです。 – thelatemail

答えて

4

grepでファイルを読み取るためにパイプを使用することもできます。たとえば、 "e"を含むすべての辞書単語を読み込むには:

w <- read.table(pipe("grep e /usr/share/dict/words")) 
+0

これはLinux、Unix、OS X、およびBSDプラットフォーム上の良い解決策ですが、Windowsコンピュータでは機能しないことに言及する価値があります。 – dww

+4

'fread'は' pipe'コールを使わなくてもそれを行うことができます: 'fread(" grep e/usr/share/dict/words ")' – daroczig

+0

質問に記述されているようにデータセットが大きい場合、 read.table'が適切です。 Rセッションが何時間も立ち往生する可能性があります。 – jangorecki

関連する問題