Split-Apply-Combine
Velmi častý problém v datové vědě spočívá v rozdělení datového rámce podle nějakého seskupení, aplikování transformace na každou skupinu a opětovném sloučení těchto částí do jednoho datového rámce. Tento postup je v R natolik běžný, že dostal vlastní název: split-apply-combine. V kurzu Intermediate R for Finance prozkoumáš celou řadu těchto problémů a funkcí, které ti s jejich řešením pomůžou. Zatím si ale ukážeme jednoduchý příklad.
Předpokládejme, že pro datový rámec cash chceš zdvojnásobit cash_flow pro společnost A a ztrojnásobit ho pro společnost B:
grouping <- cash$company
split_cash <- split(cash, grouping)
# We can access each list element's cash_flow column by:
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)
Všimni si, jak se přistupuje ke sloupci cash_flow. První $ slouží k přístupu k prvku A v seznamu split_cash. Druhé $ pak zpřístupní sloupec cash_flow datového rámce uloženého v prvku A.
Toto cvičení je součástí kurzu
Úvod do R pro finance
Pokyny k cvičení
- K dispozici máš datový rámec
split_cash. Dostupné je také seskupenígrouping, které bylo použito k rozdělenícash. - Vypiš
split_cash, abys získal/a přehled o tomto seznamu. - Vypiš sloupec
cash_flowpro společnostBze seznamusplit_cash. - Naneštěstí se ukázalo, že společnost A zkrachovala. Nastav
cash_flowpro společnost A na0. - Pomocí
groupingaplikuj funkciunsplit()na datový rámecsplit_cash. Výsledek ulož do proměnnécash_no_A. - Nakonec vypiš
cash_no_A, abys viděl/a upravený datový rámec.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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