Split-Apply-Combine
Een veelvoorkomend probleem in data science is je data frame opsplitsen op basis van een groepering, per groep een bewerking toepassen en die stukken vervolgens weer samenvoegen tot één data frame. Dit soort problemen komt zo vaak voor in R dat het de naam split-apply-combine heeft gekregen. In Intermediate R for Finance ga je verschillende van dit soort problemen en handige functies verkennen, maar voor nu doen we een simpel voorbeeld.
Stel dat je voor het cash-data frame de cash_flow voor bedrijf A wilt verdubbelen en voor bedrijf B wilt verdrievoudigen:
grouping <- cash$company
split_cash <- split(cash, grouping)
# We kunnen de cash_flow-kolom van elk lijstelement als volgt benaderen:
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)
Kijk nog eens hoe je de kolom cash_flow benadert. De eerste $ is om het element A van de split_cash-lijst te openen. De tweede $ is om de cash_flow-kolom van het data frame in A te openen.
Deze oefening maakt deel uit van de cursus
Introductie tot R voor finance
Oefeninstructies
- Het data frame
split_cashis voor je beschikbaar. Ook degroupingdie is gebruikt omcashte splitsen is beschikbaar. - Print
split_cashom de lijst te bekijken. - Print de kolom
cash_flowvoor bedrijfBinsplit_cash. - Helaas heb je gehoord dat bedrijf A failliet is gegaan. Zet de
cash_flowvoor bedrijf A op0. - Gebruik
groupingom het data framesplit_cashteunsplit(). Ken dit toe aancash_no_A. - Print tot slot
cash_no_Aom het aangepaste data frame te zien.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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