我正在尝试尽快读取CSV
文件的单个列R
。我希望将标准方法减少 10 倍于将列放入 RAM 所需的时间。
我的动机是什么?我有两个文件;一个叫Main.csv
300000 行 500 列,一个叫Second.csv
300000 行 5 列。如果我system.time()
执行命令read.csv("Second.csv")
,则需要 2.2 秒。现在,如果我使用以下两种方法中的任何一种来读取第一列Main.csv
(它的大小Second.csv
是 1 列而不是 5 列的 20%),它将花费 40 多秒。这与读取整个 600 兆字节文件所需的时间相同——显然是不可接受的。
方法一
colClasses <- rep('NULL',500) colClasses[1] <- NA system.time( read.csv("Main.csv",colClasses=colClasses) ) # 40+ seconds, unacceptable
方法二
read.table(pipe("cut -f1 Main.csv")) #40+ seconds, unacceptable
如何减少这个时间?我希望有一个R
解决方案。