Я пытаюсь как можно быстрее прочитать один столбец файла 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.