Comment obtenir top n des entreprises à partir d'un bloc de données dans l'ordre décroissant
Je suis en train d'essayer d'obtenir le haut 'n' entreprises à partir d'une trame de données.Voici mon code ci-dessous.
data("Forbes2000", package = "HSAUR")
sort(Forbes2000$profits,decreasing=TRUE)
Maintenant, je voudrais obtenir le top 50 des observations à partir de ce vecteur trié.
OriginalL'auteur Teja | 2012-08-29
Vous devez vous connecter pour publier un commentaire.
head
ettail
sont vraiment utiles fonctions!Si vous voulez les 50 premières lignes de données.une image, vous pouvez utiliser le
arrange
fonction deplyr
pour trier lesdata.frame
et ensuite utiliserhead
Avis que j'ai enveloppé
profits
dans un appel àdesc
ce qui signifie qu'il va trier dans l'ordre décroissant.De travailler sans plyr
OriginalL'auteur
Utilisation
order
pour trier lesdata.frame
, puis utilisezhead
pour obtenir uniquement les 50 premières lignes.OriginalL'auteur
Vous pouvez utiliser
rank
dedplyr
.Cela permet de trier vos données dans l'ordre décroissant, et ne garde que les valeurs où le rang est inférieur ou égal à 50 (c'est à dire le top 50).
Dplyr est très utile. Les commandes et le chaînage de la syntaxe sont très faciles à comprendre. 10/10 recommande.
top_n(n = 50, wt = profits)
au lieu defilter(...)
OriginalL'auteur
Mnel est juste qu'en général, Vous voulez utiliser de la tête() et la queue() fonctions avec la fonction de tri. Je dois mentionner que, bien que pour la moyenne des ensembles de données de Vince méthode fonctionne plus rapidement. Si vous n'utilisez pas la tête() ou la queue(), puis vous pouvez utiliser la base du paragraphe appeler l'opérateur []....
Cependant, j'ai vraiment ne vous recommandons de la tête(), queue(), ou d'un filtre() fonctions car l'opérateur [] suppose que vos données sont structurées en tirer facilement de tableau ou d'une matrice de format. (J'espère que cela répond Teja question)
Maintenant qui pacakage vous choisissez est en grande partie subjective. Cependant la lecture des commentaires, je dirai que le choix de l'utilisation de plyr arrange(), {bases}'() {utils} head() et de la queue, ou plyr() dépend largement de la taille de la mémoire et de la taille de la ligne de votre jeu de données. Je pourrais aller plus en détail sur la façon Plyr et parfois Dplyr avez des problèmes avec de grands ensembles de données complexes, mais je ne veux pas m'éloigner du sujet.
P. S. C'est l'un de mes premiers temps de répondre, donc la rétroaction est apprécié.
OriginalL'auteur