Kapitola 10 Iterace nad prvky atomických vektorů a seznamů

Casto je potreba provest nejakou operaci s kazdym prvkem atomickeho vektoru, seznamu apod. Vetsina programovacich jazyku k tomuto ucelu pouziva cyklus for (viz oddil 7.2.1). R však nabízí dvě lepší řešení. Zaprvé, mnohé funkce jsou v R vektorizované, tj. pracují s vektorem po prvcích a vrátí vektor stejné délky, kde každý prvek je výsledkem aplikace dané funkce na odpovídající prvek původního vektoru. Příkladem takové funkce je např. funkce log(). Druhou možností je použití funkce map() a jí podobných z balíku purrr. Tyto funkce berou jako svůj vstup nejen data, ale také jinou (nevektorizovanou) funkci a aplikují ji na každý prvek dat. Základní R sice poskytuje podobné funkce jako balík purrr, my se však zaměříme na funkce z balíku purrr, a to z několika důvodů: 1) jejich ovládání je jednodušší, 2) je kompatibilní s dalšími funkcemi ve skupině balíků tidyverse, 3) funkce usnadňují řešení problémů a ladění kódu a 4) umožňují snadnou paralelizaci pomocí balíku furrr.

V této kapitole se naučíte

  • aplikovat nevektorizované funkce na prvky vektorů
  • aplikovat funkce na sloupce tabulek
  • zjednodušovat výsledků na atomické vektory
  • filtrovat prvky vektorů
  • redukovat prvky vektorů
  • paralelizovat svůj výpočet

Před vlastní prací musíme načíst balík purrr:

library(purrr)