martes, 24 de diciembre de 2024

Lenguajes. R.

Datos y variables

Un lenguaje de orientación específica al análisis estadístico como es R presenta también una orientación específica al tratamiento de los datos con los que trabaja. Esto incide en qué tipo de datos considera y cómo los trata. Todo ello tiene implicaciones en el planteamiento de las variables y las colecciones de datos. En esta entrada hablaremos específicamente de las variables en R.


Los datos básicos de R son los siguientes:
  • Caracter (cadena de texto) (character) -> "La casa de la pradera" / "A"
  • Enteros (integer) -> 22
  • Decimal (numeric) -> 1.35
  • Factor (factor) -> uno
  • Lógico (logical) -> TRUE/FALSE
  • Perdido (NA) -> NA
  • Vacío (NULL) -> null
Además R también cuenta con otros tipos de datos como numéricos complejos (parte real y parte imaginaria), raw (byte), fecha y raster. De todos estos, posiblemente los más utilizados sean los datos de fecha.

La diferencia entre los datos integer y numeric es que los segundos son números con parte decimal, por lo que también se les conoce como  float (coma flotante).

La característica principal de los datos string/character es que van entrecomillados.

Un factor es un datos específico de R y se puede definir como un datos numérico que representa una etiqueta o nivel. Vg. 1 para masculino, 2 para femenino. Estos datos facilitan el ahorro de memoria del procesador.

Los datos NA y null son datos específicamente estadísticos. NA equivale a los datos perdidos y null representa la ausencia de datos. Ambos cobran sentido cuando trabajamos con tablas de datos complejas y permiten la identificación de esos tipos de "datos" y su tratamiento estadístico.

Los datos lógicos (TRUE/FALSE) permiten verificar si se cumple o no una condición determinada, facilitando el trabajo con al álgebra booleana.

Para conocer qué tipo de dato está asociado a una variable se usa la función class() (class(3)) que devuelve un string con el nombre del tipo de datos. También disponemos de la función is.TipoDato() (is.numeric(5)) que nos devuelve TRUE/FALSE.

En R se denomina coerción a la transformación de un tipo de dato en otro, y se realiza de forma implícita, del tipo de dato más restrictivo al nivel más flexible (lógico->entero->numérico->carácter) y no en orden inverso.

Para forzar explícitamente una determinada transformación empleamos la función as.TipoDato()

  • as.integer()
  • as.numeric()
  • as.character(
  • as.factor()
  • as.logical()
  • as.null()
  • ...

Si la conversión (coerción) está permitida, nos devuelve el dato convertido, pero si no lo está nos devuelve un aviso de error y el valor NA.