2013-05-22 13 views
6

Ich habe eine .csv Daten, und ich konnte es von einer Webseite anzeigen, aber wenn ich es in R lesen, konnten einige der Daten nicht angezeigt werden. Die Daten finden Sie hier home.ustc.edu.cn/~lanrr/data.csvSo lesen Sie CSV-Daten mit unbekannter Codierung 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 

Die Daten einige chinesische Wörter enthält, aber ich weiß nicht, ob ich die kodieren ändern müssen oder einige andere Dinge zu tun, hat vor, dieses Problem jemand treffen?

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 

Ich mache es auf diese Weise schließlich:

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

Wenn das löst das Problem, gehen Sie voran und post als Ihre bevorzugte Antwort. –

Antwort

5

Sie read.csv nutzen könnte mit Codierung UTF-8:

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

die chinesischen Buchstaben Charaktere zu machen und nicht die Faktoren, .

Hinweis: Ich habe das chinesische Sprachpaket nicht in meiner Umgebung installiert, sodass ich nicht feststellen kann, ob die entstellten Zeichen in der .csv-Datei beschädigt oder nicht erkannt wurden.

+0

Ich versuche, 'encoding =" UTF-8' (siehe oben) hinzuzufügen, und die Daten können angezeigt werden, aber nicht das chinesische Wort, bedeutet es, dass ich ein chinesisches Sprachpaket installieren muss? – PepsiCo

+0

@PepsiCo sind Sie in der Lage Um die chinesischen Schriftzeichen in Excel oder irgendwo anders in Ihrem Betriebssystem zu sehen? – KLDavenport

+0

Ja, ich kann die Daten sehen, wenn ich die Datei mit Excel öffne. Können Sie die Datei auf 'http: //home.ustc.edu.cn/~ sehen Lanrr/data.csv' – PepsiCo

5

Erstens, dass CSV-Datei in in GBK codiert nicht UTF-8, so sollte der Code sein:

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

Zweitens, wenn Ihr env nicht Chinesisch (vereinfacht), sollten Sie set_locale wie (mein Beispiel das Betriebssystem Windows 7)

Sys.setlocale (Kategorie = "LC_ALL", locale = "Chinesisch (vereinfacht)"), und zeigen Sie dann die Tabelle mit:

fix(mydata) 
+0

ein Tippfehler: mydata = rea d.csv ("http://home.ustc.edu.cn/~lanrr/data.csv", Codierung = "GBK", Header = T, stringsAsFactors = F) –