10

R が大きなファイル (11GB 以上) から特定の行を読み取るのにどれだけの時間がかかるかに驚いています。例えば:

> t0 = Sys.time()
> read.table('data.csv', skip=5000000, nrows=1, sep=',')
      V1       V2 V3 V4 V5   V6    V7
1 19.062 56.71047  1 16  8 2006 56281
> print(Sys.time() - t0)
Time difference of 49.68314 secs

OSX 端末は特定の行を瞬時に返すことができます。Rでより効率的な方法を知っている人はいますか?

4

1 に答える 1

19

さて、あなたはこのようなものを使うことができます

 dat <- read.table(pipe("sed -n -e'5000001p' data.csv"), sep=',')

他のシェル ツールで抽出された行だけを読み取るには、

system.time(someOps)また、時間を測定する簡単な方法であることに注意してください。

于 2013-08-14T15:16:17.563 に答える