Comment trouver top n% des enregistrements dans une colonne d'un dataframe en utilisant R

StackOverflow https://stackoverflow.com/questions/1563961

  •  21-09-2019
  •  | 
  •  

Question

J'ai un ensemble de données montrant le taux de change du dollar australien par rapport au dollar des États-Unis une fois par jour sur une période d'environ 20 ans. J'ai les données dans une trame de données, la première colonne étant la date et la deuxième colonne étant le taux de change. Voici un exemple à partir des données:

>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

Comment pourrais-je aller sur l'affichage du top n% de ces dossiers? Par exemple. dire que je veux voir les jours et les taux de change pour les jours où le taux de change se situe dans le top 5% des taux de change dans l'ensemble de données?

Était-ce utile?

La solution

Pour les 5%:

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

Autres conseils

Pour les 5% aussi:

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

Une autre solution pourrait être utilisé pour sqldf si les données sont triées en fonction de la valeur V1:

library(sqldf)
sqldf('SELECT * FROM df
       ORDER BY V1
       LIMIT (SELECT 0.05 * COUNT(*) FROM df)
      ') 

Vous pouvez modifier la forme de taux 0.05 (5%) à un débit requis.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top