Tipos de variables
Crear un proyecto en R
Antes de nada vamos a crear un proyecto en R donde iremos guardando todos los scripts y todas las bases de datos. Para ello ve a File > New Project e introduce el nombre del proyecto "Depuración" y la URL donde lo quieres guardar:
A partir de ahora siempre en el inicio de clase abrirás ese proyecto y guardarás todos los ficheros en esa carpeta.
Puedes crear una carpeta por cada tema para tener todo más ordenado. Por ejemplo Tema_1, Tema_2, Tema_3, Tema_4
Tipos de variables
Las variables que pueden aparecer en un conjunto de datos pueden ser de varios tipos:
V. Cuantitativas: Son aquellas que representan cantidades numéricas
Continuas: peso, altura, salario
Discretas: edad, número de hijos
V. Cualitativas: Son aquellas que toman un número finito de valores o categorías
Ordinales: se pueden ordenar y asignar un valor: nivel de eduación, niveles de dolor, grado de satisfacción
Nominales: No se puede establecer ningún orden: sexo, raza, país de nacimiento
V. Fecha: se consideran variables cuantitativas, pero cada software suele tener un tratamiento específico
Tipos de datos R
En R los datos se guardan en objetos . Los objetos tienen nombre y contenido, pero también atributos que especifican el tipo de datos representados.

Vector
Numérico, carácter o lógico
No
Factor
Numérico o carácter
No
Matriz
Numérico, carácter o lógico
No
Data Frame
Numérico, carácter o lógico
Si
Lista
Numérico, carácter, lógico, función o expresión
Si
Para saber los tipos de datos en R tenemos la función class()
Vectores
En R hay dos clases fundamentales de datos: numéricos y caracteres:
x=1
class(x)
## [1] "numeric"
y="a"
class(y)
## [1] "character
Podemos agrupar varios elementos en una misma clase usando vectores
## Vectores de clase numérico
edad = c(22, 34, 29, 25, 30, 33, 31, 27, 25, 25)
edad
## [1] 22 34 29 25 30 33 31 27 25 25
## Vectores de clase caracter
letras=c("a","b","c","d","e")
letras
## [1] "a" "b" "c" "d" "e"
Para saber su longitud usamos la función length()
length(edad)
# [1] 10
length(letras)
# [1] 5
Tenemos distintas formas de acceso a las posiciones del vector:
#Para acceder a una posición k del vector:
edad[3]
# [1] 29
#Para acceder a varios valores dentro de un rango:
edad[2:5]
# [1] 34 29 25 30
#Para acceder a varios valores alternos:
edad[c(1,3,7)]
# [1] 22 29 31
Para acceder de forma condicionada a un vector usaremos la función which()
which(edad>25)
# [1] 2 3 5 6 7 8
#Podemos asignar estas posiciones a una nueva variable:
mayores25<-which(edad>25)
edad[mayores25]
# [1] 34 29 30 33 31 27
# y de forma simplificada:
edad[edad>25]
# [1] 34 29 30 33 31 27
Podríamos hacer también una selección en función de valores de otro vector:
sexo <- c("M","H","H","M","M","H","M","M","H","H")
edad[sexo=="M"]
## [1] 22 25 30 31 27
En tidyverse podemos usar la opción filter
# Filtrar personas con edad > 25
datos |>
filter(edad > 25)
# Extraer solo el vector de edad correspondiente
datos |>
filter(edad > 25) |>
pull(edad)
# Edad de personas con sexo "M"
datos |>
filter(sexo == "M") |>
pull(edad)
Factores
Un factor es una variable categórica con un número finito de valores o niveles. En R los factores se utilizan habitualmente para realizar clasificaciones de los datos, estableciendo su pertenencia a los grupos o categorías determinados por los niveles del factor.
Los factores juegan un papel muy importante en la elaboración de modelos estadísticos. En particular, los modelos lineales pueden dar resultados muy diferentes según que una variable se declare como numérica o como factor.
Los niveles de un factor puede estar codificados como valores numéricos o como caracteres. Independientemente de que el factor sea numérico o carácter, sus valores son siempre almacenados internamente por R como números enteros, con lo que se consigue economizar memoria.
Ejemplo
sexo <- factor(sexo,levels=c("H","M"),labels=c("Hombre","Mujer"))
sexo
# [1] Mujer Hombre Hombre Mujer Mujer Hombre Mujer Mujer Hombre Hombre
# Levels: Hombre Mujer
Y podemos construir su tabla de frecuencias con la función table()
table(sexo)
# sexo
# Hombre Mujer
# 5 5
Variables lógicas
Las variables lógicas constituyen un tipo particular de factor en R, que se caracteriza por tomar sólo dos valores: TRUE
o FALSE
codificados, respectivamente, como 1 y 0. Es posible construir condiciones lógicas utilizando los operadores ‘y’ (&
), ‘o’ (|
) y ‘no’ (!
). La comparación de valores se lleva a cabo mediante ==
(‘es igual a’) y !=
(‘es distinto de’).
ATENCIÓN: No debe confundirse el operador de asignación =
con el de comparación ==
.
Ejemplo
Podemos realizar la tabla de frecuencias anterior pero teniendo sólo en cuenta aquellos individuos que estén solteros:
soltero<-c(TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE)
soltero
# [1] TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE FALSE TRUE
table(sexo[soltero==TRUE])
Podemos hacer lo mismo con la función which()
para acceder a las posiciones cuando es TRUE:
which(soltero)
# [1] 1 2 3 6 7 10
table(sexo[which(soltero)])
# Hombre Mujer
# 4 2
Fechas
R almacena las fechas en la clase Date. Esta clase almacena los valores como el número de días transcurridos desde el 1 de enero de 1970; para las fechas anteriores el número de días se cuenta en sentido negativo.
Para crear una fecha en R el modo más sencillo es utilizar la función as.Date()
. Esta función recibe como argumento un dato de fecha en modo carácter y la convierte a la clase Date
. En esta clase, el estándar de fecha que se utiliza (en el que se leen y muestran las fechas si no se indica otra cosa) es “año-mes-día” (yyyy-mm-dd).
Ejemplo
navidad=as.Date("2013-12-25")
navidad
# [1] "2013-12-25"
class(navidad)
# [1] "Date"
Si introducimos la fecha en otro formato (por ejemplo “dia/mes/año”), hemos de indicarlo al usar as.Date
para que R pueda interpretar la fecha correctamente:
navidad=as.Date("25/12/2013",format="%d/%m/%Y")
navidad
# [1] "2013-12-25"
Esta conversión opera también sobre vectores (siempre que estén codificados del mismo modo):
dias=c("1/10/2005","2/2/2006","3/4/2006","8/11/2014")
dias
# [1] "1/10/2005" "2/2/2006" "3/4/2006" "8/11/2014"
dias=as.Date(dias,format="%d/%m/%Y")
# [1] "2005-10-01" "2006-02-02" "2006-04-03" "2014-11-08"
Formatos de fecha
Para formatear una fecha se pueden utilizar los siguientes símbolos:
%d
día (numérico, de 0 a 31)
%a
día de la semana abreviado a tres letras
%A
día de la semana (nombre completo)
%m
mes (numérico de 0 a 12)
%b
mes (nombre abreviado a tres letras)
%B
mes (nombre completo)
%y
año (con dos dígitos)
%Y
año (con cuatro dígitos)
La función Sys.Date()
lee la fecha actual del reloj de nuestro ordenador y la codifica como un objeto de la clase Date
:
Sys.Date()
Lectura de datos en R
El formato más cómodo y habitual de lectura en R es el CSV en el que normalmente la primera fila contiene los nombres de las columnas que serán las variables y las siguientes filas contendrán los datos correspondientes. Las columnas están separadas por comas.
Para la lectura de CSV en R usaremos la función read.csv()
y con la función str()
podemos ver las variables y el tipo de dato con el que se han importado.
datos<-read.csv("Tema_1/TiposDatos.csv")
str(datos)
Ahora es tu turno: Realiza los siguientes ejercicios:
Ejercicio: Tipos de DatosLast updated