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=',')

只读取使用其他 shell 工具提取的行。

另请注意,这system.time(someOps)是一种更简单的时间测量方法。

于 2013-08-14T15:16:17.563 回答