आर

2013-05-22 2 views
6

में अज्ञात एन्कोडिंग के साथ सीएसवी डेटा को कैसे पढ़ा जाए मेरे पास .csv डेटा है, और मैं इसे वेबपृष्ठ से देख सकता हूं, लेकिन जब मैं इसे R में पढ़ता हूं, तो कुछ डेटा दिखाया नहीं जा सका। डेटा यहाँ उपलब्ध है home.ustc.edu.cn/~lanrr/data.csvआर

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 

डेटा कुछ चीनी शब्द हैं, लेकिन मैं अगर मैं एनकोड बदलने के लिए या कुछ अन्य काम करने होंगे, किसी को भी करने से पहले इस समस्या को पूरा नहीं करते हैं?

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 

मैं इस तरह से अंत में में यह कार्य करें:

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

अगर वह हल करती है समस्या, आगे बढ़ें और अपने पसंदीदा उत्तर के रूप में पोस्ट करें। –

उत्तर

5

आप के साथ read.csv उपयोग कर सकता है एन्कोडिंग UTF-8:

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

चीनी पत्र वर्ण और नहीं करने वाले कारक बनाने के लिए ।

नोट: मेरे पास मेरे पर्यावरण में चीनी भाषा पैक स्थापित नहीं है, इसलिए मैं यह निर्धारित नहीं कर सकता कि आपके द्वारा प्रदान किए गए .csv में खराब वर्ण दूषित हैं या अपरिचित हैं।

+0

मैं 'एन्कोडिंग =" यूटीएफ -8' (ऊपर दिखाया गया) जोड़ने की कोशिश करता हूं, और डेटा दिखाया जा सकता है, लेकिन चीनी शब्द नहीं, क्या इसका मतलब यह है कि मुझे एक चीनी भाषा पैक स्थापित करने की आवश्यकता है? – PepsiCo

+0

@PepsiCo क्या आप सक्षम हैं एक्सेल में चीनी वर्णों को देखने के लिए या अपने ऑपरेटिंग सिस्टम में कहीं और? – KLDavenport

+0

हां, मैं Excel के साथ फ़ाइल खोलते समय डेटा देख सकता हूं। क्या आप फ़ाइल को http://home.ustc.edu.cn/~ पर देख सकते हैं। lanrr/data.csv' – PepsiCo

5

पहले, में है कि csv फ़ाइल GBK में एन्कोड नहीं UTF-8, इसलिए कोड होना चाहिए:

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

दूसरा, अगर आपके env चीनी (सरलीकृत) नहीं है, आप के रूप में इस तरह के set_locale चाहिए

Sys.setlocale (श्रेणी = "LC_ALL", लोकेल = "चीनी (सरलीकृत)") (मेरे उदाहरण ओएस विंडोज 7 है), और फिर साथ तालिका दिखाने:

fix(mydata) 
+0

एक टाइपो: mydata = rea d.csv ("http://home.ustc.edu.cn/~lanrr/data.csv", एन्कोडिंग = "जीबीके", हेडर = टी, स्ट्रिंग्सएफ़ैक्टर्स = एफ) –