У меня странный CSV, который я не могу разобрать с readr.Давайте назовем это data.csv
.Это выглядит примерно так:
name,info,amount_spent
John Doe,Is a good guy,5412030
Jane Doe,"Jan Doe" is cool,3159
Senator Sally Doe,"Sally "Sal" Doe is from New York, NY",4451
Если бы все строки были похожи на первую строку ниже строки столбцов - два символьных столбца, за которыми следовал целочисленный столбец - это было бы легко проанализировать с помощью read_csv
:
df <- read_csv("data.csv")
Однако некоторые строки отформатированы так же, как и вторая, в том, что второй столбец («информация») содержит строку, часть которой заключена в двойные кавычки, а часть - нет.Это делает так, что read_csv не считывает запятую после слова cool
в качестве разделителя, и вся следующая строка добавляется к ошибочной ячейке.
Решением для такого рода проблемы является передача FALSE
до аргумента escape_double
в read_delim()
, например:
df <- read_delim("data.csv", delim = ",", escape_double = FALSE)
Это работает для второй строки, но убивается третьей, где второй столбец содержит строку, заключенную в двойные кавычкикоторый сам содержит вложенные двойные кавычки и запятую.
Я прочитал документацию по readr, но пока не нашел решения, которое бы анализировало строки обоих типов.