2011-08-23 14 views
9

में प्रतिशत कार्य कहां है I मुझे आर के अंदर सभी शब्दावली समझ में नहीं आ रहा है। मेरे पास केवल 100 स्तर के आंकड़े हैं, और अधिक जानने की कोशिश कर रहे हैं।CRAN -R

मुझे लगता है कि आर में एक अंतर्निहित प्रतिशत कार्य है जिसका नाम मैं पहचान नहीं पा रहा हूं या जानना चाहता हूं कि कैसे खोजा जाए।

मैं अपना खुद का लिख ​​सकता हूं, बल्कि स्पष्ट कारणों से निर्मित एक का उपयोग कर सकता हूं।

percentile <- function(x) return((x - min(x))/(max(x) - min(x)) 
+2

आप सामान्य उपयोग के लिए एक उपयोगिता समारोह आप अपने 'min' और' max' कॉल करने के लिए जोड़ने पर विचार हो सकता है 'na.rm = TRUE' में इस करना चाहते हैं ताकि समारोह समझदारी से काम करता है जब देखते हैं' डेटा में एनए –

+2

प्रतिशत (या 'मात्रा में' क्वांटाइल 'वास्तव में आपके प्रश्न में वर्णित कुछ से अलग हैं। आप एक स्केलिंग समस्या का वर्णन कर रहे हैं। फिलहाल चार उत्तरों में से केवल @ बेनबोल्कर का जवाब आपके प्रश्न का उत्तर देता है। – Andrie

उत्तर

7

देखें आप किसी डेटा सेट से विशिष्ट प्रतिशतक पता लगाने के लिए, quantile समारोह पर एक नज़र देख रहे हैं: ?quantile। 100 से गुणा करके, आपको प्रतिशत मिलते हैं।

यदि आप संख्याओं को उनके प्रतिशत में परिवर्तित करने की सोच रहे हैं, तो rank पर एक नज़र डालें, हालांकि आपको यह निर्धारित करने की आवश्यकता होगी कि संबंधों को कैसे हल किया जाए। आप वेक्टर की लंबाई से विभाजित करके रैंक से क्वांटाइल तक आसानी से पुन: सहेज सकते हैं।

+0

मैंने अपने प्रश्न पूछने से पहले क्वांटाइल फ़ंक्शन की कोशिश की। यह काफी नहीं है जो मैं ढूंढ रहा था।रैंक फ़ंक्शन देखने के लिए आपका सुझाव बहुत उपयोगी था। क्योंकि मैं केवल रैंक (x)/लंबाई (x) कर सकता हूं, जो मेरे प्रतिशत कार्य के समान परिणाम देता है। साफ! – freewary

+3

@ फ्रीवेरी मुझे खुशी है कि आपको अपनी समस्या का वर्णन करने का एक छोटा रास्ता मिला है। लेकिन बहुत सावधान रहें। कुछ विशेष मामले हो सकते हैं जहां 'रैंक (एक्स)/लंबाई (एक्स)' आपके मूल प्रश्न के समान परिणाम देता है, लेकिन ये अपवाद होंगे और आपके डेटा आपके डेटा के आधार पर अलग होंगे। – Andrie

+1

@ एंड्री सही है - ध्यान रखें। रैंकिंग क्वांटाइल के रूप में nuanced है। यदि संबंध या एनएएस हैं, तो कुछ आश्चर्य हो सकते हैं। – Iterator

6

quantile समारोह क्या आप देख रहे हैं हो सकता है:

यहाँ एक मैंने लिखा है। वैकल्पिक

quantile(x, c(.25, .43, .72)); 

अर्धविराम है, ज़ाहिर है,: आप वेक्टर x है और आप 25 वीं, 43 वीं, और 72 प्रतिशतक में जानना चाहते हैं तो आप इस पर अमल होगा।

http://www.r-tutor.com/elementary-statistics/numerical-measures/percentile

+0

यह मेरे लिए काम कर सकता है: मात्रा (महिलाओं की ऊंचाई, (1: लंबाई (महिलाएं $ ऊंचाई))/लंबाई (महिलाएं $ ऊंचाई))। आपकी व्याख्या ने मुझे कार्य को समझने में मदद की। धन्यवाद! – freewary

8

आप के माध्यम से

scale(x,center=min(x,na.rm=TRUE),scale=diff(range(x,na.rm=TRUE))) 

ऐसा कर सकते हैं लेकिन मुझे यकीन नहीं है वास्तव में एक में निर्मित समारोह है कि स्केलिंग करता है आप के लिए पूछ रहे हैं नहीं कर रहा हूँ।

+0

+1 ओपी को महसूस करने के लिए प्रतिशत के बारे में नहीं पूछ रहा है, लेकिन स्केलिंग। – Andrie

+0

इस तरह का जवाब है कि मैं आर से प्यार करना शुरू कर रहा हूं। यह वास्तव में मैं जो खोज रहा हूं वह वास्तव में नहीं है, लेकिन यह दिखाता है कि आर किसी भी प्रश्न से संपर्क करने के कई तरीकों को प्रोत्साहित करता है। – freewary

2

आप कार्यों के लिए खोज कर सकते हैं (या बस के बारे में कुछ और के लिए) RSiteSearch उदा के माध्यम से,

RSiteSearch("percentile") 
+0

मुझे आर सहायता खोजने के लिए एक नया तरीका दिखाने के लिए धन्यवाद। – freewary

0

बंद मौका आप एक प्रतिशतक एक वितरण पर आधारित बारे में सोच रहे पर, यहाँ एक अलग जवाब है। प्रत्येक संभाव्यता वितरण में इसके साथ जुड़े 4 कार्यों का एक सेट होता है: एक घनत्व, वितरण, मात्रा, और उत्पन्न कार्य। ये क्रमशः डी-, पी-, क्यू-, और आर- के उपसर्ग हैं (वितरण के आधार पर एक ही प्रत्यय के साथ)। आपके पास एक समान वितरण है, और प्रतिशत (वितरण) के बारे में पूछ रहे हैं ताकि आप punif चाहते हैं। इसमें min और max अपने दो तर्कों के रूप में लेते हैं।

+0

> punif (महिला $ ऊंचाई, 1, लंबाई (महिला $ ऊंचाई)) [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 यह सुनिश्चित करने के लिए कि यह काम कैसे करें। कृपया अधिक टिप्स। – freewary

+2

ऐसा करने के लिए मुझे लगता है कि आप 'punif (महिला $ ऊंचाई, न्यूनतम (महिला $ ऊंचाई), अधिकतम (महिला $ ऊंचाई))' (या '(महिलाओं, punif (ऊंचाई, न्यूनतम (ऊंचाई), अधिकतम (ऊंचाई))) ' –

0

मैंने यह फ़ंक्शन फ़ंक्शन किया है, इसे जांचें। डेटा किसी भी वेक्टर, किसी भी मैट्रिक्स ओ डेटा फ्रेम की पंक्ति है।

percentiles<-function(Data) return(quantile(Data, seq(0,1, by=.01))) 
संबंधित मुद्दे