2016-05-17 3 views
0

Я пытаюсь загрузить файл и загрузить в R, но он не работает. Я нахожусь на MAC, используя R 3.1.3Проблемы с кодированием на MAC

Файл находится в формате csv (и есть опция json-формата).

Вот URL для файла (CSV и JSON): http://dadosabertos.dataprev.gov.br/opendata/con02/formato=csv http://dadosabertos.dataprev.gov.br/opendata/con02/formato=json

Я знаю, что я могу скачать файл, открытый в текстовом редакторе, сохраните в кодировке UTF-8, а затем импортировать в R Но я бы хотел получить более автоматизированное решение, которое не предполагало использование другого программного обеспечения. И, кстати, даже это решение работает не так просто, как я ожидал.

Вот что я пробовал до сих пор: Поскольку файл находится на португальском языке, я знаю, что это, вероятно, utf-8.

library(jsonlite) 
options(encoding = "utf-8") 
url <- "http://dadosabertos.dataprev.gov.br/opendata/con02/formato=json" 
prev <- fromJSON(url) 

И сообщение об ошибке:

лексическая ошибка: недопустимые байт UTF8 строки. : [{ "узел": { "Ано": "1988", "Espcie": "42-Ap Tempo Contribuio (здесь) ------^

Я также пытался url1 < - "http://dadosabertos.dataprev.gov.br/opendata/con02/formato=csv" пред < - read.csv (URL, Сентябрь = "")

Но это тоже не работает, я попробовал также использовать:.

Sys.setlocale("LC_ALL", 'en_US.UTF-8') 

Но это не имеет никакого значения.

ответ

1

По крайней мере, версия csv представлена ​​в ISO-8859-1, а не UTF-8. Вы можете использовать команду curl проверить Content-Type, как это:

$ curl -I "http://dadosabertos.dataprev.gov.br/opendata/con02/formato=csv" 
HTTP/1.1 200 OK 
Set-Cookie: ACE_STICKY=R835601189; path=/; expires=Thu, 19-May-2016 00:43:56 GMT 
Server: nginx/1.2.4 
Date: Wed, 18 May 2016 00:27:45 GMT 
Content-Type: text/plain; charset=ISO-8859-1 
Connection: keep-alive 
X-Powered-By: PHP/5.3.3 
Content-Disposition: attachment; filename="CON02.csv"; 
Access-Control-Allow-Origin: * 

И глядя на содержание, что представляется правильным. Я не знаком с параметрами кодирования r, но попробуйте установить «options (encoding =« ISO-8859-1 ») и посмотреть, что произойдет.

1

Я решил ее делать так:

url<-"http://dadosabertos.dataprev.gov.br/opendata/act10/formato=json" 
a<-readLines(file(url, encoding="ISO-8859-1"), warn=FALSE) 
prev<-fromJSON(a) 
Смежные вопросы