Začněte nyníZačněte zdarma

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

Zobrazit kurz

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_flow pro společnost B ze seznamu split_cash.
  • Naneštěstí se ukázalo, že společnost A zkrachovala. Nastav cash_flow pro společnost A na 0.
  • Pomocí grouping aplikuj funkci unsplit() na datový rámec split_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
Upravit a spustit kód