2009-10-14 17 views
15

Ho un set di dati che mostra il tasso di cambio del dollaro australiano rispetto al dollaro USA una volta al giorno per un periodo di circa 20 anni. Ho i dati in un frame di dati, con la prima colonna è la data e la seconda colonna è il tasso di cambio. Ecco un esempio dei dati:Come trovare il primo n% di record in una colonna di un dataframe utilizzando R

>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 

Come potrei fare per la visualizzazione del n% superiore di questi record? Per esempio. dire che voglio vedere i giorni e i tassi di cambio per quei giorni in cui il tasso di cambio cade nel 5% superiore di tutti i tassi di cambio nel set di dati?

risposta

25

Per la parte superiore del 5%:

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

Grazie mille! –

+17

Oppure per salvare un po 'di battitura: 'sottoinsieme (dati, V2> quantile (V2, prob = 1 - n/100))' – hadley

4

Per la parte superiore del 5% anche:

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