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

Jakého jsem typu?

Právě jsi viděl/a čtyři funkce, které pomáhají zjistit, s jakým typem proměnné pracuješ. class() (docs) a typeof() (docs) jsou důležité a budou se ti často hodit. mode() (docs) a storage.mode() (docs) existují hlavně kvůli kompatibilitě s programovacím jazykem S.

V tomto cvičení se podíváš, co tyto funkce vrátí pro různé typy proměnných. Narazíš i na některé méně běžné typy, které možná ještě neznáš.

  • array (docs): Zobecnění matice s libovolným počtem dimenzí.
  • formula (docs): Používají ji modelovací a vykreslovací funkce k definování vztahů mezi proměnnými.

Měj také na paměti, že v R existují tři druhy funkcí.

  • Většina funkcí, se kterými se setkáš, se nazývá closure (uzávěry).
  • Několik důležitých funkcí, jako například length() (docs), jsou takzvané builtin funkce, které využívají speciální mechanismus vyhodnocování pro vyšší rychlost.
  • Jazykové konstrukce jako if (docs) a while (docs) jsou také funkce! Říká se jim special funkce.

Toto cvičení je součástí kurzu

Objektově orientované programování s S3 a R6 v R

Zobrazit kurz

Pokyny k cvičení

Funkce type_info() je v tvém pracovním prostředí předem definována a vrací class(), mode(), typeof() a storage.mode() svého vstupu. (Zadej type_info do konzole, abys viděl/a, jak funguje.)

  • Vytvoř some_vars — seznam ukázkových objektů připravených v editoru.
  • Pomocí lapply projdi prvky seznamu some_vars a zavolej na každý z nich funkci type_info(), abys prozkoumal/a jejich typ.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Look at the definition of type_info()
type_info

# Create list of example variables
some_vars <- list(
  an_integer_vector = rpois(24, lambda = 5),
  a_numeric_vector = rbeta(24, shape1 = 1, shape2 = 1),
  an_integer_array = array(rbinom(24, size = 8, prob = 0.5), dim = c(2, 3, 4)),
  a_numeric_array = array(rweibull(24, shape = 1, scale = 1), dim = c(2, 3, 4)),
  a_data_frame = data.frame(int = rgeom(24, prob = 0.5), num = runif(24)),
  a_factor = factor(month.abb),
  a_formula = y ~ x,
  a_closure_function = mean,
  a_builtin_function = length,
  a_special_function = `if`
)

# Loop over some_vars calling type_info() on each element to explore them
___
Upravit a spustit kód