कारक से संख्यात्मक चर में परिवर्तित करने में समस्या [बंद]


11

मैं एक कारक चर को एक सांख्यिक में बदलना चाहता हूं, लेकिन as.numericमेरे द्वारा अपेक्षित प्रभाव नहीं है।

नीचे मुझे मूल चर के आधार पर चर के संख्यात्मक संस्करण के लिए सारांश आँकड़े मिलते हैं। साधन 1 से गिनती करते रहते हैं ... शायद (वह अनुमान लगाता है) कारक के स्तर में नाम और संख्या दोनों हैं, और मैं नाम से आने वाले नए चर के मूल्य की उम्मीद कर रहा हूं जब as.numericसंख्या का उपयोग करने के लिए डिज़ाइन किया गया हो?

> describe.by(as.numeric(df$sch), df$sch)

group: 
  var    n mean sd median trimmed mad min max range skew kurtosis se
1   1 5389    1  0      1       1   0   1   1     0  NaN      NaN  0
--------------------------------------------------------- 
group: 001
  var  n mean sd median trimmed mad min max range skew kurtosis se
1   1 19    2  0      2       2   0   2   2     0  NaN      NaN  0
--------------------------------------------------------- 
group: 002
  var  n mean sd median trimmed mad min max range skew kurtosis se
1   1 54    3  0      3       3   0   3   3     0  NaN      NaN  0
--------------------------------------------------------- 

1
मैंने आपके द्वारा जोड़े गए नए टैग हटा दिए; वे मुझे भी सामान्य और भेदभावपूर्ण नहीं लग रहे थे, या asffactor के मामले में बहुत संकीर्ण थे (चूंकि यह आर बेस में एक फ़ंक्शन है)। यदि आपको लगता है कि कुछ भी खो गया था, तो कृपया पुनःप्रयास करें।
जेएमएस

जवाबों:


28

यह सही है: as.numeric(factor)आर को उस कारक के स्तर पर निर्दिष्ट संख्या देता है। तुम कोशिश कर सकते होas.numeric(as.character(factor))


4
जैसा कि यह उत्तर बताता है कि stackoverflow.com/a/3418192/476907 as.numeric(levels(f))[f] की सिफारिश की गई है और इससे अधिक कुशल हैas.numeric(as.character(f))
शिष्य

धन्यवाद! इस उत्तर से मुझे बहुत मदद मिली :)
यशा

13

यह अक्सर पूछे जाने वाले प्रश्न में 7.10 प्रश्न है। हां एक कारक को पूर्णांक से 1 के स्तर तक संग्रहीत किया जाता है और as.numeric अंतर्निहित कोड देता है। अकसर किये गए सवाल संख्यात्मक को बदलने के लिए 2 तरीके देता है।

हालाँकि, आमतौर पर ऐसा इसलिए होता है क्योंकि जब आप डेटा को पढ़ते हैं तो आपके डेटा के बारे में कुछ ऐसा होता था जिसके कारण R इसे संख्या के बजाय एक कारक के रूप में मानता था (अक्सर एक आवारा गैर-संख्यात्मक चरित्र)। कच्चे डेटा को ठीक करने के लिए अक्सर बेहतर होता है (परिवर्तित गैर-संख्यात्मक टुकड़े को NA में बदल देगा) या पढ़ने के लिए या इसी तरह का उपयोग करते समय colClasses तर्क का उपयोग करें।


1
values.tmp <- sapply (possibleValues, as.numeric); मान। गनम्यूमेरिक <- मान.tmp [is.na (values.tmp)]
russellpierce
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.