Как заменить неожиданный экранированный символ в R

Когда я пытаюсь проанализировать JSON из символьного объекта из URL-адреса Facebook, я получаю «Ошибка в fromJSON (данные): неожиданный экранированный символ «\ o» в позиции 130». Проверь это:

library(RCurl)
library(rjson)
data <- getURL("https://graph.facebook.com/search?q=multishow&type=post&limit=1500", cainfo="cacert.perm")
fbData <- fromJSON(data)
Error in fromJSON(data) : unexpected escaped character '\o' at pos 130

#with RSONIO also error
> fbData <- fromJSON(data)
Erro em fromJSON(content, handler, default.size, depth, allowComments,  : 
invalid JSON input

Есть ли способ заменить этот символ «\ o», прежде чем я попытаюсь разобрать JSON? Я попробовал gsub, но это не сработало (или я что-то не так делаю).

datafixed <- gsub('\o',' ',data)
Error: '\o' is an unrecognized escape sequence in string starting with "\o"

Может ли кто-нибудь помочь мне с этим? Спасибо.


person Luiz Felipe Freitas    schedule 02.04.2013    source источник
comment
попробуй gsub('\\o', ' ', data)   -  person Matthew Plourde    schedule 02.04.2013
comment
спасибо @Matthew Plourde   -  person Luiz Felipe Freitas    schedule 02.04.2013


Ответы (2)


Вам нужно избежать \ в вашем шаблоне.

Пытаться

gsub('\\o',' ',data)
person CHP    schedule 02.04.2013
comment
Спасибо @Matthew и geektrader С вашей помощью я также смог заменить '\ o' и '\ m', но теперь я получаю сообщение об ошибке fromJSON (datafixed2): неожиданный символ: p datafixed3 ‹- gsub ('\\ : p ',' ',datafixed2) fbData ‹- fromJSON(datafixed3) Ошибка в fromJSON(datafixed3): неожиданный символ: p - person Luiz Felipe Freitas; 02.04.2013
comment
fbData ‹- fromJSON(datafixed6) Ошибка fromJSON(datafixed6): неожиданный символ: p - person Luiz Felipe Freitas; 02.04.2013

Вы могли бы сделать

fbData <- fromJSON(data,unexpected.escape = "keep")

вы увидите предупреждение

Warning message:
In fromJSON(individual_page, unexpected.escape = "keep") :
unexpected escaped character '\m' at pos 10. Keeping value.

если вы хотите, вы можете подавить предупреждение, используя

suppressWarnings(fromJSON(data,unexpected.escape = "keep"))

неожиданно.escape : изменена обработка неожиданных экранированных символов. Значение обработки должно быть одним из «ошибка», «пропустить» или «сохранить»; при непредвиденных символах выдать ошибку, пропустить символ или сохранить символ

Вы можете найти более подробную информацию здесь - http://cran.r-project.org/web/packages/rjson/rjson.pdf

person Community    schedule 12.11.2013