2013-05-22 7 views
6

Ho un dato .csv e potrei visualizzarlo da una pagina Web, ma quando l'ho letto in R, alcuni dei dati non possono essere mostrati. I dati sono disponibili qui home.ustc.edu.cn/~lanrr/data.csvCome leggere i dati CSV con codifica sconosciuta in R

mydata = read.csv("http://home.ustc.edu.cn/~lanrr/data.csv", header = T) 
View(mydata) # show something like this: 
# 9:39:37 665 600160 �޻��ɷ� ���� ���� 8.050 100 805.00 ��ȯ �ɽ�   
    ��ȯ���� E004017669 665 
    2 9:39:38 697 930 �������� ���� ���� 4.360 283 1233.88  
    ���� �ɽ� ����Ʒ���� 680001369 697 

I dati contengono alcune parole cinesi, ma non mi se ho bisogno di cambiare la codifica o di fare alcune altre cose, qualcuno ha soddisfare questo problema prima?

mydata = read.csv("http://home.ustc.edu.cn/~lanrr/data.csv", 
        encoding = "UTF-8", header = T, stringsAsFactors = F) 
View(mydata) 
# 9:39:37 665 600160 <U+00BE><U+07BB><U+00AF><U+00B9><U+0277><dd> <c2><f4> 
    <U+00B3><f6> <c2><f2><c2><f4> 8.050 100 805.00 <c8><da><U+022F>  
    <U+00B3><U+027D><U+00BB> <c8><da><U+022F><c2><f4><U+00B3><f6> E004017669 665 
    2 9:39:38 697 930 <d6><d0><U+0078><c9><fa><U+00BB><U+00AF> <c2><f4> 
    <U+00B3><f6> <c2><f2><c2><f4> 4.360 283 1233.88 <d0><c5><d3><c3>  
    <U+00B3><U+027D><U+00BB> <U+00B5><U+00A3><U+00B1><U+00A3><U+01B7><c2><f4><U+00B3> 
    <f6> 680001369 697 

sessionInfo() 
# R version 2.15.2 (2012-10-26) 
    Platform: x86_64-redhat-linux-gnu (64-bit) 

    locale: 
    [1] LC_CTYPE=en_US.UTF-8  LC_NUMERIC=C    LC_TIME=en_US.UTF-8    
    LC_COLLATE=en_US.UTF-8  
    [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=C     
    LC_NAME=C     
    [9] LC_ADDRESS=C    LC_TELEPHONE=C    LC_MEASUREMENT=en_US.UTF-8 
    LC_IDENTIFICATION=C  

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

    other attached packages: 
    [1] data.table_1.8.8 TTR_0.22-0  xts_0.9-3  zoo_1.7-9   
    timeDate_2160.97 Matrix_1.0-9  lattice_0.20-10 

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

lo faccio in questo modo finalmente:

Sys.setlocale("LC_COLLATE", "Chinese") 
Sys.setlocale("LC_CTYPE", "Chinese") 
Sys.setlocale("LC_MONETARY", "Chinese") 
Sys.setlocale("LC_TIME", "Chinese") 
Sys.setlocale("LC_MESSAGES", "Chinese") 
Sys.setlocale("LC_MEASUREMENT", "Chinese") 
+0

Se questo risolve il problema, vai avanti e pubblica la tua risposta preferita. –

risposta

5

si potrebbe utilizzare read.csv con la codifica UTF-8:

df <-read.csv("data.csv", encoding="UTF-8", stringsAsFactors=FALSE) 

per rendere le lettere cinesi caratteri e non Fattori .

Nota: non ho installato il pacchetto in lingua cinese nel mio ambiente, quindi non è possibile determinare se i caratteri in caratteri errati nel file .csv forniti sono danneggiati o non riconosciuti.

+0

Provo ad aggiungere 'encoding =" UTF-8' (mostrato sopra), e i dati possono essere mostrati, ma non la parola cinese, vuol dire che ho bisogno di installare un pacchetto in lingua cinese? – PepsiCo

+0

@PepsiCo, sei in grado per vedere i caratteri cinesi in Excel o in qualsiasi altro sistema operativo? – KLDavenport

+0

sì, posso visualizzare i dati quando apri il file con Excel. Puoi vedere il file su 'http://home.ustc.edu.cn/~ lanrr/data.csv' – PepsiCo

5

In primo luogo, il file CSV in codificato in GBK non UTF-8, in modo che il codice dovrebbe essere:

mydata <- read.csv("http://home.ustc.edu.cn/~lanrr/data.csv", 
        encoding = "GBK", 
        header = TRUE, 
        stringsAsFactors = FALSE) 

In secondo luogo, se il vostro ENV non è il cinese (semplificato), si dovrebbe set_locale come (il mio esempio sistema operativo è Windows 7)

Sys.setlocale (categoria = "LC_ALL", locale = "cinese (semplificato)"), e poi mostrare la tabella con:

fix(mydata) 
+0

un errore di battitura: mydata = rea d.csv ("http://home.ustc.edu.cn/~lanrr/data.csv", encoding = "GBK", header = T, stringsAsFactors = F) –