7
votes

R Plyr - Commander des résultats de DDPLY?

Est-ce que quelqu'un connaît une façon glissante pour commander les résultats qui sortent d'une opération de résumage ddll?

C'est ce que je fais pour obtenir la sortie commandée par une profondeur décroissante. P>

ddply(diamonds, .(color), subset, order(carat) <= 2)


1 commentaires

Je ne suis pas sûr qu'il y ait quelque chose que vous pouvez faire "à la volée" - mais juste une note aléatoire, au lieu de ddims [commande (-DDIMS $ profond de profondeur),] , vous pouvez essayer DDIMS [Commande (DDIMS $ Profondeur, décroissant = true),] . De cette façon, vous n'avez pas à faire un nouvel objet vectoriel «négatif».


4 Réponses :


8
votes

Je vais utiliser cette occasion pour annoncer un bit pour data.table code>, ce qui est plus rapide à exécuter et (dans ma perception) au moins aussi élégant à écrire:

  user  system elapsed 
 0.106   0.010   0.119


1 commentaires

Merci mon pote. Je n'étais pas au courant de l'emballage datable.Table . A l'air puissant rapide et c'est assez lisible aussi. Je jouerai avec des grands ensembles de données dans un proche avenir, alors merci pour cela. Je vais attendre de voir si quelqu'un écrit avec un réponse spécifique .



4
votes

Oui, pour trier Vous pouvez simplement nier le ddply dans un autre ddply . Voici comment vous utiliseriez ddlly pour trier une colonne, par exemple votre table colonne: xxx


3 commentaires

Cela sonne soo non-logique et n'a pas l'air bien. Généralement, cela signifie un mauvais code. Est-ce vraiment la voie à suivre?


Pourquoi ne pas ajouter votre propre réponse et montrer une meilleure méthode?


Je reçois votre commentaire et mon poste semble plus négatif que prévu. Je suis venu ici parce que c'était aussi ma question. J'ai résolu en sauvegarde mon Dataframe comme df , puis a fait une colonne df [Colonne $ (DF $)] . Donc, je l'enregistre d'abord sur un Dataframe et de le commander.



1
votes

Un peu en retard à la fête, mais les choses pourraient être un peu différentes avec dplyr. Emprunter la solution de Crayola pour Data.Table: xxx

Les résultats montrent que dplyr avec tbl_dt est un peu plus lent que l'approche Data.Table. Cependant, dplyr avec data.frame est plus rapide: xxx

Remarque: j'ai évidemment changé les noms afin que les résultats microbenckmark sont plus lisibles


0 commentaires

3
votes

Si vous utilisez dplyr code>, je vous recommanderais de tirer parti de l'opérateur %.% code>, qui lit au code plus intuitif.

data(diamonds, package = 'ggplot2')
library(dplyr)
diamonds %.%
  group_by(color) %.%
  summarise(
    depth = mean(depth),
    table = mean(table)
  ) %.%
  arrange(desc(depth))


2 commentaires

Pourquoi la plupart des réponses sont-elles la magie noire de Rem QUESTION? Veuillez expliquer là où le%.% Opérateur est documenté et / ou ce qu'il fait. Ce n'est pas quelque chose que vous pouvez facilement trouver avec Google.


aide ("%.%", paquet = 'dplyr')