Как прочитать таблицу с именами столбцов на иврите (в R)? - PullRequest
3 голосов
/ 18 марта 2010

Я пытаюсь прочитать файл .txt с именами столбцов на иврите, но безуспешно.

Я загрузил файл примера в: http://www.talgalili.com/files/aa.txt

И я пытаюсь ввести команду:

read.table("http://www.talgalili.com/files/aa.txt", header = T, sep = "\t")

Это возвращает меня с:

  X.....ª X...ª...... X...œ....
1      12          97         6
2     123         354        44
3       6           1         3

Вместо:

אחת שתיים   שלוש
12  97  6
123 354 44
6   1   3

Мой вывод для:

l10n_info()

Является:

$MBCS
[1] FALSE

$`UTF-8`
[1] FALSE

$`Latin-1`
[1] TRUE

$codepage
[1] 1252

А для:

Sys.getlocale()

Является:

[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"

Можете ли вы предложить мне, что попробовать и изменить, чтобы я мог правильно загрузить файл?

Обновление: Пытаюсь использовать:

read.table("http://www.talgalili.com/files/aa.txt",fileEncoding ="iso8859-8")

Результатом стало:

 V1
1  ?
Warning messages:
1: In read.table("http://www.talgalili.com/files/aa.txt", fileEncoding = "iso8859-8") :
  invalid input found on input connection 'http://www.talgalili.com/files/aa.txt'
2: In read.table("http://www.talgalili.com/files/aa.txt", fileEncoding = "iso8859-8") :
  incomplete final line found by readTableHeader on 'http://www.talgalili.com/files/aa.txt'

Также пытаясь это сделать:

Sys.setlocale("LC_ALL", "en_US.UTF-8")

или это:

Sys.setlocale("LC_ALL", "en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8")

Принеси мне это:

[1] ""
Warning message:
In Sys.setlocale("LC_ALL", "en_US.UTF-8") :
  OS reports request to set locale to "en_US.UTF-8" cannot be honored

Наконец, вот> sessionInfo ()

R version 2.10.1 (2009-12-14) 
i386-pc-mingw32 

locale:
[1] LC_COLLATE=English_United States.1255  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_2.10.1

Будут оценены любые предложения или разъяснения.

Лучший, Tal

Ответы [ 2 ]

5 голосов
/ 18 марта 2010

Я бы попробовал передать параметр fileEncoding в read.table со значением iso8859-8.

Используйте iconvlist(), чтобы получить алфавитный список поддерживаемых кодировок. Как я увидел здесь Иврит должен быть частью 8 ISO 8859.

0 голосов
/ 09 февраля 2014

Я пытался ответить @George Donats, но не смог заставить его работать. Поэтому я хотел предложить другую возможность для дальнейшего использования.

Я не смог найти файл в сети, поэтому я воссоздал TXT-файл, например, вы используете TAB в качестве разделителя. Вы можете загрузить его в R с текстом на иврите, используя соединение. Это продемонстрировано ниже:

con<-file("aa.txt",open="r",encoding="iso8859-8") ##Open a read-only connection with encoding fit for Hebrew (iso8859-8)

Чем вы можете загрузить его в R с вашим кодом, используя переменную con в качестве входного файла, код, описанный здесь:

data<-read.table(con,sep="\t",header=TRUE)

Просмотр в переменной данных дает следующие результаты:

str(data)

'data.frame':   3 obs. of  3 variables:
 $ אחת  : int  6 44 3
 $ שתיים: int  97 354 1
 $ שלוש : int  12 123 6

> data$אחת
[1]  6 44  3
...