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