Я пытаюсь как можно быстрее прочитать один столбец файла CSV
на R
. Я надеюсь сократить стандартные методы с точки зрения времени, затрачиваемого на то, чтобы получить столбец в ОЗУ в 10 раз.
Какова моя мотивация? У меня два файла; один называется Main.csv
, который составляет 300000 строк и 500 столбцов, а один называется Second.csv
, который составляет 300000 строк и 5 столбцов. Если я system.time()
команда read.csv("Second.csv")
, это займет 2,2 секунды. Теперь, если я использую один из двух методов ниже, чтобы прочитать первый столбец Main.csv
(что составляет 20% от размера Second.csv
, так как это 1 столбец вместо 5), это займет более 40 секунд. Это тот же самый промежуток времени, который требуется для чтения всего файла размером 600 мегабайт, явно неприемлемого.
-
Способ 1
colClasses <- rep('NULL',500) colClasses[1] <- NA system.time( read.csv("Main.csv",colClasses=colClasses) ) # 40+ seconds, unacceptable
-
Способ 2
read.table(pipe("cut -f1 Main.csv")) #40+ seconds, unacceptable
Как уменьшить это время? Я надеюсь на решение R
.