2014-10-12 3 views
2

Я пытаюсь загрузить довольно большой файл csv в R. Он имеет около 50 столбцов и 2 миллиона строк.Большой файл csv полностью не читается в R data.frame

Мой код довольно простой, и я использовал его для открытия файлов раньше, но ни одного такого большого.

mydata <- read.csv('file.csv', header = FALSE, sep=",", stringsAsFactors = FALSE) 

В результате он считывает данные, но останавливается после 1080000 строк или около того. Это примерно так же, как и предел excel. Их способ заставить R прочитать весь файл? Почему он останавливается на полпути.

Обновление: (11/30/14) После разговора с поставщиком данных было обнаружено, что это может быть проблема с коррупцией с файлом. Был предоставлен новый файл, который также меньше и легко загружается в R.

+0

Какую операционную систему вы используете? –

+1

Звучит так, будто вы нажимаете ограничение памяти. Если вы можете получить CSV-файл в базу данных SQLite или MySQL, вы можете попробовать использовать 'dplyr', который будет выполнять многие традиционные операции в оперативной памяти в базе данных. В качестве альтернативы вы можете попробовать использовать sqldf для чтения в CSV частично, если вы можете разбить его правильно. Наконец, вы всегда можете развернуть большой экземпляр памяти в AWS, Digital Ocean и т. Д. И выполнять там анализы. – hrbrmstr

+0

Попробуйте «fread» из библиотеки («data.table»). – KFB

ответ

2

Как «read.csv()» читать до 1080000 строк, «fread» из библиотеки (data.table) следует читать с легкостью. Если нет, существует еще два варианта: попробуйте с библиотекой (h20) или с «fread», вы можете использовать опцию select, чтобы читать необходимые столбцы (или читать в двух половинах, делать чистку и объединять их).

1

Вы можете попробовать использовать read.table и включить параметр colClasses, чтобы указать тип отдельных столбцов.

С вашим текущим кодом R сначала считывает все данные в виде строк, а затем проверяет каждый столбец, если он является конвертируемым e. г. на числовой тип, который требует больше памяти, чем чтение сразу как числовое. colClasses также позволит вам игнорировать столбцы, которые вам могут не понадобиться.