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

geo*_*ory 9 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
Run Code Online (Sandbox Code Playgroud)

OSX终端可以立即返回特定的线路.有人知道R中更有效的方式吗?

Dir*_*tel 18

那么你可以使用这样的东西

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

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

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