आर

2009-10-14 8 views
15

का उपयोग कर डेटाफ्रेम के कॉलम में रिकॉर्ड्स के शीर्ष एन% को कैसे ढूंढें मेरे पास एक डेटासेट है जो ऑस्ट्रेलियाई डॉलर की विनिमय दर को लगभग 20 वर्षों की अवधि में एक बार अमेरिकी डॉलर बनाम दिखाता है। मेरे पास डेटा फ्रेम में डेटा है, पहला कॉलम दिनांक है, और दूसरा कॉलम विनिमय दर है। यहां डेटा से नमूना दिया गया है:आर

>data 
      V1  V2 
1 12/12/1983 0.9175 
2 13/12/1983 0.9010 
3 14/12/1983 0.9000 
4 15/12/1983 0.8978 
5 16/12/1983 0.8928 
6 19/12/1983 0.8770 
7 20/12/1983 0.8795 
8 21/12/1983 0.8905 
9 22/12/1983 0.9005 
10 23/12/1983 0.9005 

मैं इन रिकॉर्ड्स के शीर्ष एन% को प्रदर्शित करने के बारे में कैसे जाउंगा? जैसे कहें कि मैं उन दिनों के लिए दिन और विनिमय दर देखना चाहता हूं जहां डेटासेट में विनिमय दर सभी विनिमय दर के शीर्ष 5% में आती है?

उत्तर

25

शीर्ष 5% के लिए:

n <- 5 
data[data$V2 > quantile(data$V2,prob=1-n/100),] 
+0

धन्यवाद! –

+17

या थोड़ा टाइपिंग सहेजने के लिए: 'सबसेट (डेटा, वी 2> क्वांटाइल (वी 2, प्रोब = 1 - एन/100)) ' – hadley

4

शीर्ष 5 भी% के लिए: बहुत

head(data[order(data$V2,decreasing=T),],.05*nrow(data))