ÎncepețiÎncepe gratuit

Ce tip sunt?

Tocmai ai văzut patru funcții care te ajută să determini tipul unei variabile. class() (docs) și typeof() (docs) sunt importante și îți vor fi de folos adesea. mode() (docs) și storage.mode() (docs) există în principal pentru compatibilitate cu limbajul de programare S.

În acest exercițiu, vei vedea ce returnează aceste funcții pentru diferite tipuri de variabile. Există și câteva tipuri mai rare pe care poate nu le-ai întâlnit încă.

  • array (docs): Generalizare a unei matrice cu un număr arbitrar de dimensiuni.
  • formula (docs): Folosit de funcțiile de modelare și reprezentare grafică pentru a defini relațiile dintre variabile.

Reține, de asemenea, că în R există trei tipuri de funcții.

  • Majoritatea funcțiilor pe care le întâlnești sunt numite closure-uri.
  • Câteva funcții importante, precum length() (docs), sunt cunoscute ca funcții builtin și folosesc un mecanism special de evaluare pentru a fi mai rapide.
  • Constructele de limbaj, precum if (docs) și while (docs), sunt și ele funcții! Acestea sunt cunoscute ca funcții special.

Acest exercițiu face parte din cursul

Programare orientată pe obiecte cu S3 și R6 în R

Vezi cursul

Instrucțiuni pentru exercițiu

Funcția type_info() a fost predefinită în spațiul tău de lucru și returnează class(), mode(), typeof() și storage.mode() pentru argumentul primit. (Tastează type_info în consolă pentru a vedea cum funcționează.)

  • Creează some_vars, lista de obiecte exemplu furnizată în editor.
  • Folosește lapply pentru a parcurge elementele din some_vars, apelând type_info() pe fiecare obiect exemplu pentru a le explora tipul.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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
___
Editează și rulează codul