2016-07-29 2 views
0

После решения here Я пытаюсь реализовать скрипт, который заменяет символы с акцентом. Выполнение моего кода из консоли работает нормально, однако, когда я выполняю этот код:Не удается создать скрипт с редкими символами в RStudio

x <- list('ÿ'='y') 

от А RStudio сценарий R возвращает следующие ошибки:

source('~/R/DrivingDataAnalysis/R/WebScraper/VoltstatsScraper.R', encoding = 'UTF-8') Error in source("~/TestScript.R", : ~/TestScript.R:1:6: unexpected INCOMPLETE_STRING 1: list(' ^

для других акцентированных символов, как в ссылке R разбирает сценарий , Как я могу сделать эту работу в скрипте? Я использую R 3.3.1 и RStudio 0.99.896 на Windows 7.

+0

Я не могу воспроизвести эту проблему на RStudio 0.99.1266 (превью) , Похоже, кодировка UTF-8 была введена в 0.99.903 (см. Https://support.rstudio.com/hc/en-us/articles/200532197-Character-Encoding), поэтому вам просто нужно обновить версию RStudio – Phil

+0

Спасибо за вашу помощь. Обновление RStudio до 0.99.903 устранило проблему при настройке кодировки: ISO-8859-1. Однако для обычной кодировки UTF-8 проблема остается. Вы пытались настроить кодировку на «UTF-8», чтобы воспроизвести ошибку? Также установка этой ошибки, например WINDOWS-1252, генерирует эту ошибку. –

+1

Не-ASCII-символы + R + Windows == У вас будет плохое время. –

ответ

1

Преобразование мой комментарий к ответу, потому что я думаю, что это будет исправить вашу проблему:

  • Убедитесь, что ваш сценарий кодируется в UTF-8 , Everything else is madness.
  • Вместо использования source, который принципиально не работает, используйте

    eval(parse('your/file.r', encoding = 'UTF-8')) 
    

    This works as a substitute for source. Как объясняет связанный ответ, причина в том, что source пытается (и не может) преобразовать UTF- 8-кодированные символы, тогда как parse не выполняет никаких преобразований; вместо этого он загружает строку дословно из файла и просто отмечает ее как кодировку UTF-8.

К сожалению, это вам придется делать это вручную, при условии, что кнопка RStudio в «источник» использует source, а не выше обходной путь внутри.


Другие Unicode преобразования может иметь смысл, но - насколько мне известно - не все поддерживаемые R.

+0

спасибо за подробное объяснение проблемы и связанные с ней проблемы! –

Смежные вопросы