2010-02-27 9 views
12

डाटासेट मैं में पढ़ना चाहते हैं के साथ और हजार विभाजक के रूप में एक अल्पविराम के बिना संख्या में शामिल हैं:मैं read.csv में एक हजार विभाजक कैसे घोषित कर सकता हूं?

"Sudan", "15,276,000", "14,098,000", "13,509,000" 
"Chad", 209000, 196000, 190000 

और मैं एक तरह से देख रहा हूँ में इस डेटा को पढ़ने के लिए

सराहना की किसी भी संकेत।!

उत्तर

19

के रूप में संसाधित करें क्योंकि प्रश्न के तहत एक "आर" टैग है, मुझे लगता है कि यह एक आर सवाल है। आर में, आप उद्धृत अल्पविराम के संभालने के लिए कुछ करने की ज़रूरत नहीं है:

> read.csv('t.csv', header=F) 
    V1   V2   V3   V4 
1 Sudan 15,276,000 14,098,000 13,509,000 
2 Chad  209000  196000  190000 

# if you want to convert them to numbers: 
> df <- read.csv('t.csv', header=F, stringsAsFactor=F) 
> df$V2 <- as.numeric(gsub(',', '', df$V2)) 
+8

यदि मैं read.csv (और रूट पर read.table) को संख्यात्मक डेटा में अनुमति देने (और स्ट्रिप) करने के लिए एक वर्ण के रूप में 'हजारों.एसपी' तर्क लेता हूं तो मुझे यह अच्छा लगेगा। अभी के लिए मुझे लगता है कि gsub() समाधान हमारे पास है। –

1

डेटा आप उपयोग कर उसे पार्स सकता है कि सेट को देखते हुए "," की विभाजक intead के रूप में (अतिरिक्त स्थान पर ध्यान दें) ","

-4

की प्रक्रिया दो चरणों के रूप में यह करने के बारे में कैसे। 1. "टैब" को एक टैब वर्ण के साथ बदलें। 2. टैब पर विभाजित करें।

मैं नेट यहाँ यह सोचते हैं रहा हूँ, लेकिन नमूना सिद्धांत किसी भी भाषा में लागू होगा

+0

एक जोड़े टिप्पणी - 1) "आर" टैग का मतलब कर्स्टन "आर" भाषा, नहीं नेट उपयोग कर रहा है। 2) टैब के साथ सभी कॉमा को प्रतिस्थापित करना काम नहीं करेगा, आप अपने डेटा को खराब तरीके से विभाजित कर देंगे। –

0

आप निम्न नियमित अभिव्यक्ति इस्तेमाल कर सकते हैं और किसी भी अल्पविराम के आसपास उद्धरण चिह्न को दूर करने के सादे सीएसवी सामग्री छोड़ने के लिए

,(?=[0-9])|" 

फिर इसे सामान्य

संबंधित मुद्दे