2012-11-27 33 views
6

मेरे पास संख्याओं का पूरा स्तंभ है जिसमें हजारों में अल्पविराम विभाजक शामिल हैं। जब मैं उनमें से एक संख्यात्मक कॉलम बनाने की कोशिश करता हूं, तो 999 से अधिक कुछ एनए बन जाता है।संख्या मूल्यों में अल्पविराम शामिल हैं - मैं इन संख्यात्मक कैसे बना सकता हूं?

मैं cbind प्रयोग किया है:

df <- cbind(df, var2 = as.numeric(as.character(df$var1))) 

और साथ समापन:

 var1 var2 
1 2,518.50 NA 
2 2,518.50 NA 
3 5,018.50 NA 
4 4,018.50 NA 
5 10,018.50 NA 
6  318.50 318.5 
7 2,518.50 NA 
8 3,518.50 NA 
9 7,518.50 NA 
10 1,018.50 NA 

वहाँ के लिए अल्पविराम पट्टी या as.numeric बताओ कैसे उन्हें संभाल करने के लिए एक रास्ता है?

+3

आप 'gsub' का उपयोग कर सकते हैं। 'gsub (',', '', var2)' – Justin

+2

@mnel मुझे लगता है कि कुछ अलग करेगा? क्या यह '1000' के समान' 1' के समान नहीं होगा? जबकि अमांडा कह रहा है कि '1000' का इलाज' 1000' – Dason

+0

@Dason जैसा किया जाना चाहिए, अच्छी तरह से उठाया गया। – mnel

उत्तर

9

आप एक नया स्तंभ var2df में जोड़ने के लिए कोशिश कर रहे हैं, तो आप निम्न

df$var2 <- as.numeric(gsub(",", "", as.character(df$var1))) 
+1

नाइस Google भी करना चाहेंगे। मुझे cbind की भी आवश्यकता नहीं है? – Amanda

+3

नहीं, डेटा फ्रेम के साथ आप बस असाइन कर सकते हैं। 'डीएफ [[var2]] <- मूल्य' और' डीएफ $ var2 <- मूल्य 'दोनों काम करते हैं। –

2

उपयोग as.numeric(gsub(",", "", df$var1)) उपयोग कर सकते हैं।

आप gsub का उपयोग करना चाहते हैं sub केवल पहले अल्पविराम को प्रतिस्थापित करेगा।