我很惊讶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中更有效的方法吗?
答案 0 :(得分:18)
你可以使用这样的东西
dat <- read.table(pipe("sed -n -e'5000001p' data.csv"), sep=',')
只读取用其他shell工具提取的行。
另请注意,system.time(someOps)
是衡量时间的更简单方法。