2013-01-21 15 views
7

मैं freaddata.table से csv फ़ाइलों को लोड करने के लिए उपयोग कर रहा हूं। हालांकि मेरी सीएसवी फाइल dec="," को दशमलव-विभाजक के रूप में उपयोग करती है (1.231,23 होगी)। read.csv के विपरीत ऐसा लगता है कि dec एक अनुमत पैरामीटर नहीं है।डेटा.table में dec तर्क :: फ्रेड

R) args(fread) 
function (input = "test.csv", sep = "auto", sep2 = "auto", nrows = -1, 
    header = "auto", na.strings = "NA", stringsAsFactors = FALSE, 
    verbose = FALSE, autostart = 30) 

आप के चारों ओर एक काम देखा है कि मुझे fread का उपयोग करने के लिए सक्षम हो जाएगा (यह है तो बहुत तेजी से है कि यह मुझे बहुत समय की बचत होती है) (स्थापित करने के लिए हो सकता है एक आर विकल्प)?

पुनश्च: colClasses अभी तक तो लागू नहीं है setAs की तरह में this post

+1

एक वर्कअराउंड के रूप में आप एक तेज़ टेक्स्ट एडिटर के साथ प्रतिस्थापित कर सकते हैं। – Roland

+0

मैं कहूंगा कि "पैकेज रखरखाव से पूछें", खासकर जब से यह कार्य विकास में है: http://stackoverflow.com/questions/14124813/data-table-fread-function –

+0

धन्यवाद रोलैंड लेकिन मेरे पास कई फाइलें हैं और कुछ तार हैं भविष्य में ',' हो सकता है ... और मैं वास्तव में उन्हें वैसे भी बदलना नहीं चाहता हूं। धन्यवाद – statquant

उत्तर

8

अद्यतन अक्टू 2014 नहीं किया जा सकता: अब v1.9.5 में

fread अब स्वीकार करता dec=',' (और अन्य गैर ' 'दशमलव विभाजक), #917। एक नया अनुच्छेद ?fread में जोड़ा गया है। यदि आप ऐसे देश में स्थित हैं जो dec=',' का उपयोग करता है तो इसे केवल काम करना चाहिए। यदि नहीं, तो आपको एक अतिरिक्त चरण के लिए अनुच्छेद पढ़ने की आवश्यकता होगी। यदि यह किसी भी तरह dec='.' तोड़ता है, तो यह नई सुविधा options(datatable.fread.dec.experiment=FALSE) के साथ बंद कर दी जा सकती है।



पिछला जवाब ...

मैट Dowle स्थानों के साथ एक अच्छा काम के आसपास पाया।

Sys.localeconv()["decimal_point"] 
decimal_point 
      "." 

LC_NUMERIC स्थापित करने के लिए कोशिश कर रहा है उबंटू (मैथ्यू) और WinXP (मुझे)

Sys.setlocale("LC_NUMERIC", "French_France.1252") 
[1] "French_France.1252" 
Message d'avis : 
In Sys.setlocale("LC_NUMERIC", "French_France.1252") : 
    changer 'LC_NUMERIC' peut résulter en un fonctionnement étrange de R 

व्यवहार पर काम किया: सबसे पहले मेरी sessionInfo

sessionInfo() 
R version 2.15.2 (2012-10-26) 
Platform: i386-w64-mingw32/i386 (32-bit) 

locale: 
[1] LC_COLLATE=French_France.1252 LC_CTYPE=French_France.1252 LC_MONETARY=French_France.1252 LC_NUMERIC=C 
[5] LC_TIME=C 
... 

निम्नलिखित कोशिश कर रहा अपराधी से पता चलता ठीक है और इस प्रकार बदलता है:

DT = fread("A,B\n3,14;123\n4,22;456\n",sep=";") 
str(DT) 
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables: 
$ V1: num 3.14 4.22 
$ V2: int 123 456 

"।" दशमलव विभाजक अब तारों के रूप में लोड किए गए हैं (जैसा कि यह होना चाहिए), यह पहले विपरीत था।

DT = fread("A,B\n3.14;123\n4.22;456\n",sep=";") 
str(DT) 
Classes ‘data.table’ and 'data.frame': 2 obs. of 2 variables: 
$ V1: chr "3.14" "4.22" 
$ V2: int 123 456