Split-Apply-Combine
Um problema comum em ciência de dados é dividir seu data frame por um agrupamento, aplicar alguma transformação a cada grupo e depois recombinar essas partes em um único data frame. Esse tipo de problema é tão frequente em R que recebeu o nome de split-apply-combine. Em Intermediate R for Finance, você vai explorar vários desses problemas e funções úteis para resolvê-los, mas, por ora, vamos ver um exemplo simples.
Suponha que, para o data frame cash, você esteja interessado em dobrar o cash_flow da empresa A e triplicá-lo para a empresa B:
grouping <- cash$company
split_cash <- split(cash, grouping)
# Podemos acessar a coluna cash_flow de cada elemento da lista por:
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)
Observe novamente como você acessa a coluna cash_flow. O primeiro $ acessa o elemento A da lista split_cash. O segundo $ acessa a coluna cash_flow do data frame dentro de A.
Este exercicio faz parte do curso
Introdução a R para Finanças
Instruções do exercicio
- O data frame
split_cashestá disponível para você. Também está disponível ogroupingusado para dividircash. - Imprima
split_cashpara dar uma olhada na lista. - Imprima a coluna
cash_flowda empresaBemsplit_cash. - Infelizmente, você descobriu que a empresa A faliu. Defina o
cash_flowda empresa A como0. - Use
groupingpara aplicarunsplit()ao data framesplit_cash. Atribua isso acash_no_A. - Por fim, imprima
cash_no_Apara ver o data frame modificado.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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