Split-Apply-Combine
Un problema tipico in data science è suddividere un data frame in base a un raggruppamento, applicare una trasformazione a ciascun gruppo e poi ricombinare il tutto in un unico data frame. In R questa classe di problemi è così comune che ha un nome specifico: split-apply-combine. In Intermediate R for Finance esplorerai diversi di questi problemi e le funzioni utili per risolverli; per ora, vediamo un esempio semplice.
Supponi che, per il data frame cash, tu voglia raddoppiare il cash_flow dell’azienda A e triplicarlo per l’azienda B:
grouping <- cash$company
split_cash <- split(cash, grouping)
# Possiamo accedere alla colonna cash_flow di ciascun elemento della lista così:
split_cash$A$cash_flow
[1] 1000 4000 550
split_cash$A$cash_flow <- split_cash$A$cash_flow * 2
split_cash$B$cash_flow <- split_cash$B$cash_flow * 3
new_cash <- unsplit(split_cash, grouping)
Osserva di nuovo come si accede alla colonna cash_flow. Il primo $ serve per accedere all’elemento A della lista split_cash. Il secondo $ serve per accedere alla colonna cash_flow del data frame in A.
Questo esercizio fa parte del corso
Introduzione a R per la finanza
Istruzioni dell'esercizio
- Il data frame
split_cashè a tua disposizione. È disponibile anche ilgroupingusato per dividerecash. - Stampa
split_cashper dare un’occhiata alla lista. - Stampa la colonna
cash_flowper l’aziendaBinsplit_cash. - Purtroppo, hai scoperto che l’azienda A ha chiuso. Imposta il
cash_flowdell’azienda A a0. - Usa
groupingper eseguireunsplit()sul data framesplit_cash. Assegna il risultato acash_no_A. - Infine, stampa
cash_no_Aper vedere il data frame modificato.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Print split_cash
# Print the cash_flow column of B in split_cash
split_cash$___$___
# Set the cash_flow column of company A in split_cash to 0
split_cash$___$___ <- ___
# Use the grouping to unsplit split_cash
cash_no_A <- unsplit(___, ___)
# Print cash_no_A