Проблемы R с неанглийскими символами

Я получаю некоторую информацию о местоположении из Twitter, и я не могу заставить символы иностранного языка появляться правильно, когда я конвертирую список в фрейм данных. Например, у меня есть этот код:

x <- rbind('МоскваРоссия','knoxfieldmelbourne', 'CA US','MelbrneAustralia')
y <- data.frame(rbind('МоскваРоссия','knoxfieldmelbourne', 'CA US','MelbrneAustralia'))

write.csv(x,'\\test2.csv')

Если я просто прочитаю «x» в консоли, я получу:

> x
     [,1]                
[1,] "МоскваРоссия"      
[2,] "knoxfieldmelbourne"
[3,] "CA US"             
[4,] "MelbrneAustralia"  

Но когда я пишу X в csv или когда смотрю на него в программе просмотра, я получаю: введите здесь описание изображения

Я работаю в Windows и использую Excel для открытия файла CSV.

Если я запускаю «y» в консоли, я получаю тот же результат, что и выше. Очевидно, что R может читать неанглийские символы, но почему они меняются, когда я копирую их в csv?


person jmich738    schedule 26.05.2015    source источник
comment
Какую ОС вы используете (по умолчанию Windows не использует UTF-8)? Какой просмотрщик используете? Что вы используете для просмотра файла csv?   -  person MrFlick    schedule 26.05.2015
comment
Я отредактировал свой пост. Средство просмотра — это средство просмотра R Studio. Я буду продолжать пытаться использовать код из сообщения, упомянутого @Pascal, но в данный момент он у меня не работает.   -  person jmich738    schedule 26.05.2015
comment
Если вам действительно нужен Excel, попробуйте открыть csv с помощью Google Spreadsheet, а затем экспортировать в xlsx. Дополнительные обсуждения здесь: stackoverflow.com/questions/ 4221176/   -  person Will Cornwell    schedule 26.05.2015


Ответы (1)


Это русские символы. Если вы не работаете с большим количеством разных языков и не знаете, какой есть какой, простое изменение локали R должно сработать. Кроме того, кодировка файла должна быть UTF.

Sys.setlocale(locale = "Russian")
write.csv(x,'\\test2.csv',fileEncoding = "UTF-8")
person user3675152    schedule 21.04.2017