EmpezarEmpieza gratis

¿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 funciones builtin, que usan un mecanismo especial de evaluación para ejecutarse más rápido.
  • ¡Las construcciones del lenguaje, como if (docs) y while (docs), también son funciones! Se conocen como funciones special.

Este ejercicio forma parte del curso

Programación orientada a objetos con S3 y R6 en R

Ver curso

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 lapply para iterar sobre los elementos de some_vars, llamando a type_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
___
Editar y ejecutar código