Рассмотрим следующий файл с разделителями-запятыми. Для простоты пусть она содержит одну строку:
'I am quoted','so, can use comma inside - it is not separator here','but can\'t use escaped quote :=('
Если вы попытаетесь прочитать его с помощью команды
table <- read.csv(filename, header=FALSE)
линия будет разделена на 4 части, потому что строка содержит 3 запятые. На самом деле я хочу читать только 3 части, одна из которых содержит запятую. Там флаг цитаты приходит за помощью. Я пробовал:
table <- read.csv(filename, header=FALSE, quote="'")
но это падает с ошибкой "incomplete final line found by readTableHeader on table"
. Это происходит из-за нечетного (семи) числа котировок.
read.table()
, а также scan()
имеют параметр allowEscapes
, но установка его на TRUE
не помогает. Это нормально, причина от help(scan)
вы можете прочитать:
Эскапады, которые интерпретируются, являются управляющими символами '\ A,\b,\f,\n,\r,\t,\v,... ... Любой другой сбежал символ рассматривается как сам, включая обратную косую черту
Пожалуйста, предложите, как бы вы читали такие цитированные csv файлы, содержащие escape-кавычки \'
.