2011-01-25 19 views
54

में कनवर्ट करें मैं reshape पैकेज का उपयोग कर डेटा फ्रेम में हेरफेर कर रहा हूं। पिघला हुआ फ़ंक्शन का उपयोग करते समय, यह मेरे मान कॉलम को कारगर करता है, जो एक समस्या है क्योंकि उन मानों का सबसेट पूर्णांक है जो मैं संचालन करने में सक्षम होना चाहता हूं।कारक को पूर्णांक

क्या किसी को एक पूर्णांक में एक कारक को मजबूर करने के तरीके के बारे में पता है? as.character() का उपयोग करके इसे सही चरित्र में परिवर्तित कर दिया जाएगा, लेकिन फिर मैं इसे तुरंत एक ऑपरेशन नहीं कर सकता, और as.integer() या as.numeric() इसे उस संख्या में परिवर्तित कर देगा जो सिस्टम उस कारक को संग्रहीत कर रहा है, जो सहायक नहीं है।

धन्यवाद!

जेफ

+2

यह http://stackoverflow.com/questions/3418128/r-how-to-convert-a-factor-to-an-integer-numeric-in-r-without-a-loss-of के समान है -फॉर्मेट – Aaron

उत्तर

53

आप दो कार्यों को जोड़ सकते हैं; numerics को यहां से पात्रों को मजबूर:

> fac <- factor(c("1","2","1","2")) 
> as.numeric(as.character(fac)) 
[1] 1 2 1 2 
+0

मैंने कोशिश की, लेकिन मुझे चेतावनी संदेश मिलता है: "एनएएस जबरन द्वारा पेश किया गया।" इसका क्या मतलब है? –

+0

या क्या इसका मतलब यह है कि उनमें से कुछ के साथ शुरू करने के लिए संख्या नहीं थी? –

+1

@ जेफ इसका मतलब है कि कुछ पात्र संख्याएं नहीं हैं, इसलिए जब आप 'as.numeric (....)' का उपयोग करते हैं तो उन्हें 'NA' में परिवर्तित कर दिया जाता है। 'स्तर (fac)' और 'as.numeric (स्तर (fac)) को 'कारक' को प्रतिस्थापित करने के लिए अपने कारक चर के साथ देखें, जिसे 'एनए' के ​​लिए मजबूर किया जा रहा है। –

62

factor के लिए मदद पृष्ठ से सीधे हवाला देते हुए:

अपने मूल संख्यात्मक मान के लिए च एक पहलू को बदलने के लिए, as.numeric(levels(f))[f] की सिफारिश की और as.numeric(as.character(f)) की तुलना में थोड़ा और अधिक कुशल है।

+0

#bazinga। पढ़ना मौलिक है! – d8aninja

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