У меня есть куча названий авторов из-за рубежа в CSV, который R читает в полном порядке. Я пытаюсь очистить их для загрузки в Mechanical Turk (что действительно не нравится даже одному интернационализированному персонажу). При этом, у меня есть вопрос (будет размещена позже), но я не могу даже dput
их в разумный путь:Как правильно транслировать интернационализированный текст?
> dput(df[306,"primauthfirstname"])
"Gwena\xeblle M"
> test <- "Gwena\xeblle M"
<simpleError in nchar(val): invalid multibyte string 1>
Другими словами, dput
работает просто отлично, но вставив результат дает сбой , Почему не dput
выводит необходимую информацию, чтобы разрешить копирование/вставку обратно в R (предположительно все, что нужно сделать, это добавить атрибуты кодировки в оператор структуры?). Как мне это сделать?
Обратите внимание, что \xeb
является допустимым символом, насколько R обеспокоен:
> gsub("\xeb","", turk.df[306,"primauthfirstname"])
[1] "Gwenalle M"
Но что вы не можете оценить символы по отдельности - это шестнадцатеричный код \ х ## или ничего:
> gsub("\\x","", turk.df[306,"primauthfirstname"])
[1] "Gwena\xeblle M"
Это отлично работает для меня: '(test <-" Gwena \ xeblle M ")' дает '[1]« Gwenaëlle M »'. Я использую R 2.14.0 с 'LANG = en_US.UTF-8'. –
@MichaelHoffman Что такое 'LANG'? Как это проверить? –
Это переменная среды. Попробуйте 'Sys.getenv (« LANG »)'. Какую версию R вы используете? –