2014-07-20 3 views
5

Quindi c'era questo codice prima:intesa tally (in ordine = TRUE)

flights %>% 
    group_by(dest) %>% 
    summarise(arr_delay = mean(arr_delay, na.rm = TRUE), 
    n = n()) %>% 
arrange(desc(arr_delay)) 

Questo codice ho capito. Tuttavia questo codice in basso a destra che si mostra:

flights %>% 
    group_by(carrier, flight, dest) %>% 
    tally(sort = TRUE) %>% # Save some typing 
    filter(n == 365) 

Quindi questo codice che non si ottiene il

tally(sort = TRUE) 

Quando si dice risparmiare un po 'di battitura, che cosa esattamente si sta salvando? Comprendo che lo tally(sort = TRUE) sostituisce summerise(n = n()), ma in che modo "salva la digitazione" e in che modo si relaziona tra loro? Se qualcuno mi può dare una ripartenza di tally(sort = TRUE) sarebbe molto apprezzato!

+1

"salva digitazione" per me significa salva un po 'di battitura a macchina da avere per digitare il 'sumarise' (e sotto) quent) linea. No? Inoltre, c'è un file di aiuto per 'tally' –

+0

È l'unica cosa che salva? che si risparmia la digitazione? Voglio solo assicurarmi che non ci siano altre applicazioni per l'operatore "tally" – user3784616

+0

Dove hai preso questo codice? È dall'uso di Hadley! tutorial? –

risposta

17

Sono lungi dall'essere un esperto di dplyr, ma dal momento che nessuno vuole rispondere, ci provo. Quindi da tally documentation tutto ciò che fa è solo darti le frequenze per gruppo. Se si incorpora due tally s, lo faranno solo sum le frequenze, così per esempio:

library(dplyr) 
tally(group_by(CO2, Plant)) 

# Plant n 
# 1 Qn1 7 
# 2 Qn2 7 
# 3 Qn3 7 
# 4 Qc1 7 
# 5 Qc3 7 
# 6 Qc2 7 
# 7 Mn3 7 
# 8 Mn2 7 
# 9 Mn1 7 
# 10 Mc2 7 
# 11 Mc3 7 
# 12 Mc1 7 

è solo di base R table

table(CO2$Plant) 
# Qn1 Qn2 Qn3 Qc1 Qc3 Qc2 Mn3 Mn2 Mn1 Mc2 Mc3 Mc1 
# 7 7 7 7 7 7 7 7 7 7 7 7 

e

tally(tally(group_by(CO2, Plant))) 
# n 
# 1 84 

è solo

sum(table(CO2$Plant)) 
# [1] 84 

o

tally(CO2) 
# n 
#1 84 

o

nrow(CO2) 
# [1] 84 

Quindi re la tua domanda,

flights %>% 
    group_by(carrier, flight, dest) %>% 
    tally(sort = TRUE) %>% # Save some typing 
    filter(n == 365) 

significa

Take data set "flights" 
group it by "carrier", "flight" and "dest" columns 
give me the frequencies of these combinations and sort them by frequecy 
return only the combinations that their frequency equals to 365