2016-10-28 5 views
0

3つの列を持つ大きなファイル(data.txt、35 GB)があります。ファイルの いくつかの例の部分は、次のようになります。特定の条件を満たす大きなテキストファイルからの読み取り専用の行

... ... ... 
5 701565 8679.56 
8 1.16201e+006 3193.18 
1 1.16173e+006 4457.85 
14 1.16173e+006 4457.85 
9 1.77942e+006 7208.73 
4 1.78011e+006 8239.88 
14 1.78019e+006 8195.57 
9 2.00206e+006 8858.55 
4 2.00199e+006 7924 
... ... ... 

私は2列目の値が0と50,000の間にあるとき、第三カラムのヒストグラムをプロットしたいです。

次に、最初の列の値が50,000〜100,000の範囲にある別のヒストグラムを作成します。そんなこと、など。

私は一度に必要なデータだけを読み込み/読み込みする方法がわかりません。どんな助けもありがとう!

sqldfパッケージを使用する必要がある場合は、2番目の列の値が、たとえば2より小さくなければならないと言うことができます。 50'000?

How do i read only lines that fulfil a condition from a csv into R?との違いは、列名がないことです。

SQL =

+0

多分 'sqldf'パッケージを使うことができます。インスピレーションについては、[これらの検索結果](http://stackoverflow.com/search?q=%5Br%5D+filter+sqldf+where)を参照してください。 – Jaap

+0

私は列名を持っていません。したがって、sqldfをサブセット化する方法を知りませんか? – Fabi

+0

csvファイルの列に名前を付けるだけでいいですか? csvの構造はかなりシンプルで、おそらくNotepad ++を使うことができます... – JonGrub

答えて

0

私はreadrサポートこの種のものの最近のバージョンを考える「Sepal.Length> 5ファイルから選択*」:したがって、私は彼らの溶液中で提案し何を行うことはできません。以下は、ヘルプの改訂版です。readr::read_csv_chunked

library(readr) 

f <- function(x, pos) subset(x, X3 > 0 & X3 < 50000) 
df <- read_csv_chunked(
    'test.csv', 
    DataFrameCallback$new(f), 
    chunk_size = 100000, 
    col_names = F 
) 
関連する問題