Рассмотрим следующий файл, разделенный запятыми.Для простоты пусть он содержит одну строку:
'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-файлы, содержащие экранированные \'
кавычки.