Split-Apply-Combine
Un problema habitual en ciencia de datos es dividir un data frame por un agrupamiento, aplicar alguna transformación a cada grupo y después volver a combinar esas piezas en un único data frame. Esta clase de problemas es tan común en R que recibe el nombre de split-apply-combine. En Intermediate R for Finance explorarás varios de estos problemas y funciones útiles para resolverlos, pero, por ahora, hagamos un ejemplo sencillo.
Supón que, para el data frame cash, te interesa duplicar el cash_flow de la empresa A y triplicarlo para la empresa B:
grouping <- cash$company
split_cash <- split(cash, grouping)
# Podemos acceder a la columna cash_flow de cada elemento de la lista así:
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)
Fíjate de nuevo en cómo accedes a la columna cash_flow. El primer $ sirve para acceder al elemento A de la lista split_cash. El segundo $ sirve para acceder a la columna cash_flow del data frame en A.
Este ejercicio forma parte del curso
Introducción a R para finanzas
Instrucciones del ejercicio
- Tienes disponible el data frame
split_cash. También está disponible elgroupingque se usó para dividircash. - Imprime
split_cashpara echar un vistazo a la lista. - Imprime la columna
cash_flowde la empresaBensplit_cash. - Por desgracia, has sabido que la empresa A ha quebrado. Establece el
cash_flowde la empresa A en0. - Usa
groupingpara hacerunsplit()del data framesplit_cash. Asigna el resultado acash_no_A. - Por último, imprime
cash_no_Apara ver el data frame modificado.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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