Ho una soluzione funzionante ma sono alla ricerca di una soluzione più chiara e più leggibile che forse sfrutta alcune delle più recenti funzioni della finestra di dplyr.Uso delle funzioni della finestra di dplyr per calcolare i percentili
Utilizzando il set di dati mtcars, se voglio guardare ai 25 °, 50 °, 75 ° percentile e la media e il numero di miglia per gallone ("mpg") per il numero di cilindri ("CYL"), io uso il codice seguente:
library(dplyr)
library(tidyr)
# load data
data("mtcars")
# Percentiles used in calculation
p <- c(.25,.5,.75)
# old dplyr solution
mtcars %>% group_by(cyl) %>%
do(data.frame(p=p, stats=quantile(.$mpg, probs=p),
n = length(.$mpg), avg = mean(.$mpg))) %>%
spread(p, stats) %>%
select(1, 4:6, 3, 2)
# note: the select and spread statements are just to get the data into
# the format in which I'd like to see it, but are not critical
c'è un modo che io possa fare questo in modo più pulito con dplyr utilizzando alcune delle funzioni di riepilogo (n_tiles, percent_rank, ecc)? In parole povere, intendo senza la dichiarazione "fai".
Grazie
Dovrei aggiungere che questo codice utilizza anche il pacchetto "tidyr", che è dove la funzione "spread" viene da – dreww2