2011-09-30 8 views
27

संभव डुप्लिकेट:
R - How to convert a factor to an integer\numeric in R without a loss of informationजानकारी आर खोने के बिना सांख्यिक करने के लिए एक कारक परिवर्तित (as.numeric() काम करने के लिए प्रतीत होता है नहीं)

के रूप में के बारे में निम्नलिखित तथ्य। सांख्यिक() फ़ंक्शन मेरा ध्यान

> blah<-c("4","8","10","15") 
> blah 
[1] "4" "8" "10" "15" 
> blah.new<-as.factor(blah) 
> blah.new 
[1] 4 8 10 15 
Levels: 10 15 4 8 
> blah.new1<-as.numeric(blah.new) 
> blah.new1 
[1] 3 4 1 2 

में लाया गया है जब मैं स्तरों 4, 8, 1 के साथ एक कारक कन्वर्ट 0, और 15 को मात्रात्मक चर के रूप में। संख्यात्मक() का उपयोग करके, प्रत्येक संख्या को रैंकिंग में परिवर्तित कर दिया जाता है, और मूल मान खो जाते हैं।

मैं वेक्टर 'blah.new' कैसे ले सकता हूं जिसमें स्तर 10,15, 4, और 8 है, और इसे संख्यात्मक मान 10, 15, 4, और 8 में परिवर्तित करें?

धन्यवाद (यह समस्या क्योंकि एक डाटासेट जहां एक मात्रात्मक चर read.table द्वारा पढ़ा जाता है की उत्पन्न हो गई है() एक कारक के रूप में) !!!!

***** अद्यतन: आईटी बाहर ******

blah.new1<-as.numeric(as.character(blah.new)) 

लगा हालांकि, मैं as.numeric के लिए दस्तावेज में जहां सोच रहा हूँ() यह कहा गया है कि इस समारोह में तर्क धर्मान्तरित रैंकिंग की एक सूची?

+1

यह '** कारक' – Andrie

+1

की धारा ** चेतावनी ** में प्रलेखित है और यह आर-एफएक्यू में भी है। –

+1

लेकिन यह उन आर पुस्तकों में से किसी एक में नहीं है जो मैं थंबिंग कर रहा हूं और यह निश्चित रूप से मुझे अभी एक लूप के लिए फेंक दिया है। – Amanda

उत्तर

26

पहला, कारक सूचकांक और स्तरों के होते हैं। जब आप कारक से जूझ रहे हों तो यह तथ्य बहुत महत्वपूर्ण है।

उदाहरण के लिए,

> z <- factor(letters[c(3, 2, 3, 4)]) 

# human-friendly display, but internal structure is invisible 
> z 
[1] c b c d 
Levels: b c d 

# internal structure of factor 
> unclass(z) 
[1] 2 1 2 3 
attr(,"levels") 
[1] "b" "c" "d" 
यहाँ

, z 4 तत्व है।
इंडेक्स उस क्रम में 2, 1, 2, 3 है।
स्तर प्रत्येक इंडेक्स: 1 -> बी, 2 -> सी, 3 -> डी के साथ जुड़ा हुआ है।

फिर, as.numeric संख्यात्मक रूप से सूचकांक संख्यात्मक रूप से कारक का हिस्सा परिवर्तित करता है।
as.character सूचकांक और स्तर को संभालता है, और इसके स्तर द्वारा व्यक्त वर्ण वेक्टर उत्पन्न करता है।

?as.numeric कहता है कि कारकों को डिफ़ॉल्ट विधि द्वारा नियंत्रित किया जाता है।

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

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