#r #csv #tidyverse #readr
#r #csv #tidyverse #readr
Вопрос:
Я пытался проанализировать этот файл tsv, используя reader::read_tsv
, но я продолжаю получать сообщение об ошибках синтаксического анализа. Затем я понял, что tsv содержит несколько необычных символов, когда я использовал python для чтения файла, в котором говорится encoding='cp1252'
Я пытался использовать эти:
writeLines(iconv(readLines("Evaluations (1).tab"), from = "cp1252", to = "UTF8"), file("test2.tab", encoding="UTF-8"))
read.delim("Evaluations (1).tab", sep = "t", encoding = "Windows-1252")
read.table("Evaluations (1).tab", header=TRUE, sep="t", fileEncoding="CP1252")
ничего не сработало.
Может кто-нибудь взглянуть на этот файл tab и подсказать мне, как я могу это проанализировать?
Спасибо!!!
Ответ №1:
Кажется, он закодирован в UCS-2LE, поэтому попробуйте:
read.table(file = "Evaluations (1).tab", sep = "t", header = TRUE, fileEncoding = "UCS-2LE")
[1] Session.Date Date.Completed Evaluator.Name Evaluator.Status Subject.Name
[6] Subject.Rotation Overall.Comments Subject.Comments X.Question.1.ID. X.Question.1.Tags.
[11] X.Question.1.Response. X.Question.1.Comment. X.Question.1.Drop.Down.List. X.Question.2.ID. X.Question.2.Tags.
[16] X.Question.2.Response. X.Question.2.Comment. X.Question.2.Drop.Down.List. X.Question.3.ID. X.Question.3.Tags.
[21] X.Question.3.Response. X.Question.3.Comment. X.Question.3.Drop.Down.List. X.Question.4.ID. X.Question.4.Tags.
[26] X.Question.4.Response. X.Question.4.Comment. X.Question.4.Drop.Down.List. X.Question.5.ID. X.Question.5.Tags.
[31] X.Question.5.Response. X.Question.5.Comment. X.Question.5.Drop.Down.List. X.Question.6.ID. X.Question.6.Tags.
[36] X.Question.6.Response. X.Question.6.Comment. X.Question.6.Drop.Down.List. X.Question.7.ID. X.Question.7.Tags.
[41] X.Question.7.Response. X.Question.7.Comment. X.Question.7.Drop.Down.List.
<0 rows> (or 0-length row.names)
Комментарии:
1. Отлично. Спасибо! Это сработало. Вы знаете, имеет ли readr аналогичную функцию?
2. Я не думаю
readr
, что поддерживает многобайтовое кодирование, поэтому вам нужно оставаться с базовым R, если вы не перекодируете файл повторно.3. Хорошо, спасибо, что указали на это. Не могли бы вы также указать, как узнать, какое файловое кодирование использовать для файла?
4. Я также нашел это полезным, просто поделившись с другими ( github.com/tidyverse/readr/issues/1107 )