1.6. Tipos de Datos

R trabaja con una gran diversidad de datos.

1.6.1. Tipos de Datos

Al finalizar esta parte reconocerás la diversidad de tipos de datos que se usan en R.

Los cuatro tipos de datos principales de R son:

  • numéricos: incluye integer, numeric
  • caracteres (texto): incluye strings, factor
  • tiempo: incluye Date, POSIXct
  • lógico: TRUE, FALSE

Para saber el tipo de datos que contiene una variable, usamos la función class.

num <- 13
class(num)
## [1] "numeric"
tex <- "búha"
class(tex)
## [1] "character"

Datos numéricos

El tipo de dato más utilizado en R.

Los datos numéricos son de dos clases principales:

  • numeric: que en otros lenguajes aparecen como float o double. Pueden contener valores enteros y decimales, positivos y negativos, incluyendo 0.
  • integer: sin valores decimales; se pueden asignar a una variable colocando la letra L al final del número.
# el resultado de una operación matemática regular es numérico:
div <- 13 / 7
div
## [1] 1.857143
class(div)
## [1] "numeric"
# asignando un entero a una variable:
ent <- 13L
ent
## [1] 13
class(ent)
## [1] "integer"
# las operaciones matemáticas con enteros no necesariamente producen enteros:
ent_num <- 13L / 7L
ent_num
## [1] 1.857143
class(ent_num)
## [1] "numeric"


Home

Datos en texto

Importantes en estadísticas como factores.

El tipo de datos en caracteres o texto tiene dos formas de manejarse:

  • character: es la forma básica de este tipo de dato.
  • factor: es una forma especial, en la que los caracteres son usados como un tipo especial de variable nominal (niveles).
# asignar texto a variable:
caract <- "uprh"
caract
## [1] "uprh"
class(caract)
## [1] "character"
# crear factor:
fact <- factor("uprh")
fact # el contenido aparece sin " "
## [1] uprh
## Levels: uprh
class(fact)
## [1] "factor"

Con la función nchar podemos medir la ‘longitud’ (length) del contenido de una variable con dato en texto (o numérica).

nchar(caract)
## [1] 4
nchar(123456)
## [1] 6


Home

Datos de tiempo

Fechas y horas

Las operaciones con datos de tiempo, fechas u horas, son siempre complicadas en cualquier lenguaje de programación (y hasta en Excel). Dos clases de datos que se usan en R son:

  • Date: almacena el número de días desde el 1 de enero de 1970 (día 0). Se crea con la función as.Date.

  • POSIXct: almacena el número de segundos desde el 1 de enero de 1970. Se crea con la función as.POSIXct.

# una fecha reciente:
hoy <- as.Date("2021-02-06")
hoy
## [1] "2021-02-06"
class(hoy)
## [1] "Date"
# para ver la cantidad de días:
as.numeric(hoy)
## [1] 18664
# una fecha antes de 1970:
luna <- as.Date("1969-07-20")
as.numeric(luna)
## [1] -165

Es muy conveniente para conocer la diferencia en días entre dos fechas.

# días desde la llegada a la luna:
dias_luna <- hoy - luna
dias_luna
## Time difference of 18829 days

 

Usamos de manera similar POSIXct.

# tiempo hasta hoy
tiempo_hoy <- as.POSIXct("2021-02-06 13:00")
as.numeric(tiempo_hoy)
## [1] 1612630800
# diferencias en minutos y segundos:
difer <- as.POSIXct("2021-02-06 14:55:00") - as.POSIXct("2021-02-06 14:53:23")
difer
## Time difference of 1.616667 mins


Home

Datos lógicos

Principalmente resultado de expresiones lógicas.

Tienen dos valores: TRUE o FALSE; tienen también valor numérico: 1 o 0.

# pueden asignarse a variables:
verdad <- TRUE
falso <- FALSE
# clase de variable lógica:
class(verdad)
## [1] "logical"
# valor numérico
as.numeric(falso)
## [1] 0
# operaciones entre datos lógicos:
verdad * falso
## [1] 0

El resultado de expresiones lógicas es un dato lógico.

# resultado de una comparación numérica
comparar <- 2 == 3
class(comparar)
## [1] "logical"
comparar
## [1] FALSE
# otra comparación
menor_que <- 2 < 3
menor_que
## [1] TRUE
# comparación de caracteres
comp_texto <- "dato" == "data"
comp_texto
## [1] FALSE


Home

Referencias

Lander, J. P. (2017). R for everyone: Advanced analytics and graphics (Second edition). Addison-Wesley, Boston, MA.