2017-01-24 12 views
1

Файл csv для импорта имеет 134 строки и каждую строку с различным количеством столбцов. Ссылка на файл: https://drive.google.com/open?id=0Bz9mIfU-AcbrVlZpRnpkd2hYMjAread.csv2() неожиданно разбивает строку на две строки?

команду R используется для импорта:

allConsecCounts <- read.csv2("pathToFile/ConsecCounts.csv",header = FALSE,sep=",",fill = TRUE, strip.white = TRUE,allowEscapes = TRUE) 

Проблема: вторая последняя строка быть неожиданно разделяется на два ряда.

(примечание: если файл для чтения просто обрезается до последних нескольких строк, то он считывается правильно, т. Е. Вторая последняя строка не разбивается на две строки).

Просьбы предложить

Благодаря

+0

Я получаю 134 строки, как ожидалось. –

+0

Попробуйте fread из data.table package – Shashank

+0

Спасибо @RyanMorton за то, что дал мне знать. Однако он все еще не работает на моей системе. Я надеюсь, что это связано не с какой-то настройкой, которая приводит к разделению строк, превышающих конкретную длину, так как кажется, что разделенная строка действительно самая длинная. –

ответ

0

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

Вы можете прочитать в списке вложенных списков (псевдо-JSON) и запроса против него, которые не могут быть все, что легко Или использовать цикл и readLines, установка каждой строки равна первого вхождения который, кажется, является именем строки.

Если данные заказаны, вы можете использовать name[1] и name2[1], чтобы получить доступ к тому, что будет в одном месте в таблице, по крайней мере, пока вы не закончите традиционное табличное пространство на очень длинных строках.

Но таким образом каждая переменная может иметь различное количество объектов в своем списке.

+0

Спасибо @bethanyP. На самом деле readLines - это еще один способ, который я попытался изначально, а затем сдался, так как потребовалось больше работы (петли, разделение строк и т. Д.), Чтобы сделать то же самое, что и данные/таблицы. Однако то, что меня озадачивает, - это кажущееся неустойчивое поведение read.csv2, поскольку технически он также должен иметь возможность обрабатывать нерегулярный размер столбца, правильно вставляя NA. –

+0

Я кое-что изучил с этим, и это тоже не сработало для меня. И он явно сдвигает имя первой строки вверх, а затем добавляет VALUE из второй-последней строки REAL в качестве имени строки для завернутой строки ... Если вы знаете, как долго каждая из строк, вы можете явно указать размеры и сказать, чтобы добавить NA. Как вы используете данные? – sconfluentus

+0

да. Я сделал то же самое. Я обошел проблему, заполнив NA в данных, чтобы сделать их равными столбцами (на Java). Теперь он читается правильно, и все работает в R. Данные в основном используются как сгруппированные по категориям (т. Е. Извлеченные из ярлыков строк) и некоторые преобразования, выполненные с использованием пакетов data.table и reshape2. А затем создаются агрегирование и статистика распределения/графики. Благодарю. –