¿Cuál es mi tipo?
Acabas de ver cuatro funciones que te ayudan a determinar con qué tipo de variable estás trabajando. class() (docs) y typeof() (docs) son importantes y te serán útiles a menudo. mode() (docs) y storage.mode() (docs) existen principalmente por compatibilidad con el lenguaje de programación S.
En este ejercicio, verás qué devuelven estas funciones para distintos tipos de variables. Hay algunos tipos más raros con los que quizá aún no te hayas encontrado.
array(docs): Generalización de una matriz con un número arbitrario de dimensiones.formula(docs): Usada por funciones de modelado y de visualización para definir relaciones entre variables.
Ten en cuenta también que en R hay tres clases de funciones.
- La mayoría de las funciones con las que te cruzas se llaman
closures. - Unas pocas funciones importantes, como
length()(docs), se conocen como funcionesbuiltin, que usan un mecanismo especial de evaluación para ejecutarse más rápido. - ¡Las construcciones del lenguaje, como
if(docs) ywhile(docs), también son funciones! Se conocen como funcionesspecial.
Este ejercicio forma parte del curso
Programación orientada a objetos con S3 y R6 en R
Instrucciones del ejercicio
La función type_info() se ha predefinido en tu espacio de trabajo para devolver el class(), mode(), typeof() y storage.mode() de su entrada. (Escribe type_info en la consola para ver cómo funciona.)
- Crea
some_vars, la lista de objetos de ejemplo que se proporciona en el editor. - Usa
lapplypara iterar sobre los elementos desome_vars, llamando atype_info()en cada uno de los objetos de ejemplo para explorar su tipo.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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
___