Как прочитать большой csv-файл (2,5 ГБ) в R?

#r #csv #import #large-data

#r #csv #импорт #большие данные

Вопрос:

Я прочитал много сообщений в stackoverflow о чтении больших файлов в R. Мои данные составляют около 2,5 ГБ с ~ 30 000 000 строк и ~ 15 столбцов. Я попробовал метод sqldf, который взят из другого сообщения,

 library(sqldf)
f <- file("~/Downloads/data.csv")
system.time(bigdf <- sqldf("select * from f", dbname = tempfile(), file.format = list(header = T, row.names = F)))
 

который вернул ошибку, указывающую, что

 "RS-DBI driver: (RS_sqlite_import: /Users/data.csv line 14691020 expected 13 columns of data but found 1)"
 

У кого-нибудь есть другие хорошие методы?

Обновление: я только что попробовал пакет ff, который все еще не работал.

 library(ff)
system.time(read.csv.ffdf(file="~/Downloads/data.csv", header=TRUE, sep=','))
 

он также вернул ошибку,

 Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
scan() expected 'an integer', got '"18749362"'
 

Решение:

Я пробовал ff, fread, sqldf, colClass, все эти методы не работают. Таким образом, я нахожу онлайн-приложение для разделения файлов, которое легко решает мою проблему. Спасибо всем, что ответили на мой вопрос!

Этот вопрос закрыт.

Комментарии:

1. Взгляните на ff package, например.

2. Я попробовал ff, и это тоже не сработало.

3. Убедитесь, что вы используете последнюю исправленную версию R, и при необходимости исправьте свои данные.

4. Проблема, как следует из сообщения об ошибке, заключается в том, что в вашем формате данных есть нарушения, которые необходимо исправить или скорректировать.

5. Я думаю, вам следует избегать Microsoft Office при работе с большим количеством данных (или любым объемом данных в целом). например, новейший Excel, IIRC, может обрабатывать только миллион строк