Sto tentando di sostituire tutte le mie chiamate plyr
con dplyr
. Ci sono ancora alcuni problemi e uno di questi è con la funzione group_by
. Immagino che si comporta allo stesso modo del secondo argomento ddply
e fa una divisione, applica e combina in base alle variabili di raggruppamento I. Ma non sembra essere il caso. Ecco un esempio piuttosto banale.Come replicare un comportamento di ddply che utilizza una funzione personalizzata con dplyr?
Definiamo una funzione stupida
mm <- function(x) return(x[1:5, ])
Ora possiamo dividere le specie nel iris
set di dati in questo modo e applicare questa funzione per ogni pezzo.
ddply(iris, .(Species), mm)
Questo funziona come previsto. Tuttavia, quando provo lo stesso con dplyr
, non funziona come previsto.
iris %>% group_by(Species) %>% mm
Cosa sto facendo male?
+1 più , se l'OP vuole usare la sua funzione personalizzata, può anche farlo: 'iris%>% group_by (Specie)%>% do (mm (.))' o usa solo 'iris%>% group_by (Specie)% >% do (testa (., 5)) ' –