Comece agoraComece grátis

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

Ver curso

Instruções do exercicio

  • O data frame split_cash está disponível para você. Também está disponível o grouping usado para dividir cash.
  • Imprima split_cash para dar uma olhada na lista.
  • Imprima a coluna cash_flow da empresa B em split_cash.
  • Infelizmente, você descobriu que a empresa A faliu. Defina o cash_flow da empresa A como 0.
  • Use grouping para aplicar unsplit() ao data frame split_cash. Atribua isso a cash_no_A.
  • Por fim, imprima cash_no_A para 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
Editar e Executar Código