Quel est mon type ?
Vous venez de voir quatre fonctions qui vous aident à déterminer le type de variable avec lequel vous travaillez. class() (docs) et typeof() (docs) sont importantes et vous seront souvent utiles. mode() (docs) et storage.mode() (docs) existent principalement pour la compatibilité avec le langage S.
Dans cet exercice, vous allez examiner ce que renvoient ces fonctions pour différents types de variables. Certains types plus rares pourraient vous être inconnus.
array(docs) : généralisation d’une matrice avec un nombre arbitraire de dimensions.formula(docs) : utilisée par les fonctions de modélisation et de visualisation pour définir les relations entre les variables.
Notez également qu’il existe trois sortes de fonctions en R.
- La plupart des fonctions que vous rencontrez sont des
closures. - Quelques fonctions importantes, comme
length()(docs), sont des fonctionsbuiltin, qui utilisent un mécanisme d’évaluation spécial pour aller plus vite. - Les constructions du langage, comme
if(docs) etwhile(docs), sont aussi des fonctions ! On les appelle des fonctionsspecial.
Cet exercice fait partie du cours
Programmation orientée objet avec S3 et R6 en R
Instructions
La fonction type_info() a été prédéfinie dans votre espace de travail pour renvoyer les sorties de class(), mode(), typeof() et storage.mode() pour son entrée. (Tapez type_info dans la console pour voir comment elle fonctionne.)
- Créez
some_vars, la liste des objets d’exemple fournis dans l’éditeur. - Utilisez
lapplypour itérer sur les éléments desome_varset appeleztype_info()sur chacun des objets d’exemple afin d’explorer leur type.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
___