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țiibuiltinși folosesc un mecanism special de evaluare pentru a fi mai rapide. - Constructele de limbaj, precum
if(docs) șiwhile(docs), sunt și ele funcții! Acestea sunt cunoscute ca funcțiispecial.
Acest exercițiu face parte din cursul
Programare orientată pe obiecte cu S3 și R6 în R
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
lapplypentru a parcurge elementele dinsome_vars, apelândtype_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
___