Чтение CSV-файл в R


У меня есть несколько csv-файлов разного размера, но все несколько большие. Использование read.csv для чтения их в R занимает больше времени, чем я терпеливо ждал до сих пор (несколько часов). Мне удалось прочитать Самый большой файл (2,6 ГБ) очень быстро (менее минуты) с помощью data.table s fread.

Моя проблема возникает, когда я пытаюсь прочитать файл вдвое меньшего размера. Я получаю следующее сообщение об ошибке:

Ошибка в fread("C:/Users/Jesper/OneDrive/UdbudsVagten/BBR/CO11700T.csv",:

Ожидая 21 cols, но строка 2557 содержит текст после обработка всех седла. Весьма вероятно, что это связано с тем, что одно или несколько полей имеют встроенные sep=';' и/или (неэкранированная) 'n' символы в несбалансированной неэкранированные кавычки.

fread не может справиться с такими неоднозначными случаями и те строки могли быть прочитаны не так, как ожидалось. Пожалуйста, прочтите раздел на котировках внутри ?fread.

В ходе исследований я нашел предложения по добавлению quote = "" в код, но это не помогло мне. Я пробовал использовать пакет bigmemory, но R вылетает, когда я пытаюсь. Я на 64-битной системе с 8 ГБ оперативной памяти. Я знаю, что есть довольно много тем на эту тему, но я не смог решить проблему ни с одним из решений. Я бы очень хотел использовать fread (учитывая мой хороший опыт работы с большим файлом), и кажется, что должен быть какой - то способ заставить его работать-просто не могу понять.
1 2

1 ответ:

Решил эту проблему, установив SlickEdit и используя его для редактирования строк, вызвавших проблему. Некоторые символы, такие как амперсанд, кавычки и апострофы, были последовательно закодированы, чтобы включать точку с запятой - например, & вместо просто &. Поскольку точка с запятой была разделителем в текстовом документе, это вызвало проблему при чтении с fread.