有效地从大文件中读取特定行到R中

时间:2013-08-14 15:01:08

标签: r

我很惊讶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中更有效的方法吗?

1 个答案:

答案 0 :(得分:18)

你可以使用这样的东西

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

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

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