Правильное чтение скандинавских букв во фрейме данных - PullRequest
1 голос
/ 13 марта 2012

Когда я пытаюсь прочитать разделенный запятыми файл значений, содержащий скандинавские буквы, во фрейм данных в r, с помощью команды read.table(), это не получается. То есть я хочу, чтобы такие буквы, как «å», «æ», «ø», «ä» и «ö» были включены правильно. Прямо сейчас они представлены не алфавитными знаками, и они часто заставляют жаловаться другие операции, такие как заговор.

Я сохраняю свои csv-файлы в обычном текстовом редакторе в OS X , но я также пытался использовать TextWrangler , сохраняя мой файл в определенном формате, например как UTF-8 и UTF-16, а затем укажите мою кодировку в команде read.table() с параметром "encoding=".

Как выглядит минимальный пример, когда скандинавские буквы импортируются из csv-файла во фрейм данных?

1 Ответ

4 голосов
/ 13 марта 2012

Вы должны включить больше подробностей относительно вашей локали, и вам нужно поместить образец в место, где люди могут его получить. В данный момент мой Mac, кажется, правильно читает символы (и я не в той стране, где это даже нужно):

> read.table(text='"å", "æ", "ø", "ä"', sep=",")
  V1 V2 V3 V4
1  å  æ  ø  ä
> Sys.getlocale()
[1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8"

(Я также создал файл с TextEdit.app, и он также правильно читает. И они отображаются правильно при построении.) Вы можете попробовать указать входную кодировку с параметром fileEncoding:

> read.table(text='"å", "æ", "ø", "ä"', sep=",", fileEncoding="UTF-8")
  V1 V2 V3 V4
1  å  æ  ø  ä

... который ничего не делает для меня, но который мог бы, если бы ваша локаль была установлена ​​как "C", что, кажется, происходит без уважительной причины для некоторых людей с Mac. Если вы используете только параметр 'encoding' для read.table, он ничего не делает на этапе ввода, а только назначает атрибут результату операции чтения.

...