Как прочитать файл .csv, содержащий апострофы в R? - PullRequest
34 голосов
/ 08 марта 2012

Мне трудно заставить R прочитать файл .txt или .csv, содержащий апострофы.

Некоторые из моих столбцов содержат описательный текст, такой как «Отвечает потребностям клиентов» или «Заместитель шерифа». Мой файл правильно открывается в Excel (то есть все данные отображаются в правильных ячейках; в нем 3 столбца и около 8000 строк, а отсутствующих данных нет). Но когда я прошу R прочитать файл, вот что происходит:

data <-read.table("datafile.csv", sep=",", header=TRUE)
  Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  : 
  line 520 did not have 3 elements

(строка 520 - первая строка, содержащая апостроф.)

Если я захожу в файл .txt или .csv и вручную удаляю все апострофы, то R правильно читает файл. Однако я бы предпочел оставить апострофы, если смогу.

Я новичок в R и буду благодарен за любую помощь.

Ответы [ 3 ]

35 голосов
/ 08 марта 2012

По умолчанию read.table видит одинарные и двойные кавычки как символы кавычек. Вам нужно добавить quote="\"" к вашему read.table вызову. Или вы можете просто использовать read.csv, который по умолчанию видит только двойные кавычки в качестве символов кавычек.

8 голосов
/ 08 марта 2012

Тщательное изучение параметров в? Read.table окупится в долгосрочной перспективе. Значения по умолчанию для символов в кавычках: quote = "\" '", что на самом деле составляет всего два символа после того, как R анализирует это выражение, одинарную и двойную кавычку. Вы можете удалить их оба из рассмотрения, используя quotes=NA. Иногда это необходимо также удалить «comment.char» со значением по умолчанию «#», и может быть полезно изменить «as.is» на «ИСТИНА», чтобы предотвратить преобразование строк в факторы.

1 голос
/ 24 августа 2014

Установка параметра quote = "\\" в read.table должна помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...