En R, los datos se pueden clasificar en diferentes tipos y estructuras. En este documento, veremos ejemplos de tipos de datos básicos y estructuras de datos más complejas, como vectores, matrices, data frames, listas y factores.
En R, los datos se pueden clasificar en diferentes tipos básicos:
numéricos, enteros, caracteres, lógicos, complejos, fechas y horas. Para
identificar el tipo de un objeto, puedes usar la función
class()
o mode()
.
# Números (numeric)
numero <- 42.5
numero
class(numero) # "numeric"
# Enteros (integer)
entero <- as.integer(10)
entero
class(entero) # "integer"
# Caracteres (character)
texto <- "Hola, mundo"
texto
class(texto) # "character"
# Lógicos (logical)
logico <- TRUE
logico
class(logico) # "logical"
# Complejos (complex)
complejo <- 3 + 2i
complejo
class(complejo) # "complex"
# Fechas (Date)
fecha <- as.Date("2021-10-01")
fecha
class(fecha) # "Date"
# Hora solamente (POSIXct)
hora <- as.POSIXct("12:00:00", format = "%H:%M:%S")
hora
class(hora) # "POSIXct"
# Fecha con hora (POSIXct)
fecha_hora <- as.POSIXct("2021-10-01 12:00:00")
fecha_hora
class(fecha_hora) # "POSIXct"
class()
:
edad
con el valor 21.fiestas
con el texto
"Navidad, Año Nuevo y Reyes"
.taller_aburrido
con el valor
FALSE
.fecha_nacimiento
con tu fecha de
nacimiento "aaaa-mm-dd"
.Para trabajar con datos más allá de variables con un valor, R ofrece
diferentes estructuras de datos. A continuación, veremos ejemplos de
vectores, matrices, data frames, listas y factores. Para identificar el
tipo de una estructura de datos, puedes usar la función
str()
(muestra la estructura de un objeto).
Un vector es una colección de elementos del mismo tipo. Puedes crear
vectores con la función c()
.
# Crear un vector numérico
numeros <- c(1.5, 2.3, 3, 4.01, 5.6)
numeros
# Crear un vector de caracteres
nombres <- c("Juan", "Ana", "Luis")
nombres
# Modificación de vectores
suma <- numeros + 2 # Suma 2 a cada elemento
suma
# Secuencias
secuencia <- 1:10 # 1, 2, 3, ..., 10
secuencia
# Acceder a elementos del vector
elementoV1 <- numeros[3] # Tercer elemento
elementosV2 <- numeros[c(1, 4)] # Primer y cuarto elemento
elementoV1
elementosV2
Ejercicio:
temperaturas
con los valores:
23, 25, 21, 19, 22
.class()
y str()
.Las matrices son arreglos bidimensionales con elementos del mismo tipo.
# Crear una matriz
matriz <- matrix(1:9, nrow = 3, ncol = 3)
matriz
# Acceder a elementos
elementoM <- matriz[2, 3] # Fila 2, columna 3
elementoM
# Acceder a varios elementos
elementosM2 <- matriz[1:2, c(1,3)] # Filas 1 y 2, columnas 2 y 3
elementosM2
# Extraer una fila
filaM <- matriz[1, ] # Fila 1 completa
filaM
Ejercicio:
class()
y str()
.Un data frame es una tabla donde cada columna puede tener un tipo
diferente de datos. Para crear un data frame, puedes usar la función
data.frame()
o convertir un tibble con
as_tibble()
. Puedes crear primero los vectores y luego
combinarlos en un data frame o hacero directamente en la función
data.frame()
. Para acceder a columnas, puedes usar el
operador $
. Para seleccionar filas o columnas, puedes usar
subset()
.
# Crear un data frame
pacientes <- data.frame(
Nombre = c("Juan", "Ana", "Luis"),
Edad = c(25, 30, 35),
Diabetes = c(TRUE, FALSE, TRUE)
)
pacientes
# Acceder a columnas
edades <- pacientes$Edad
edades
# Filtrar datos
diabeticos <- subset(pacientes, Diabetes == TRUE)
diabeticos
# crear un tibble
library(tibble)
tibble_pacientes <- as_tibble(pacientes)
tibble_pacientes
Ejercicio:
class()
y str()
.Las listas pueden contener elementos de diferentes tipos. Se crean
con la función list()
.
# Crear una lista
mi_lista <- list(
vector = c(1, 2, 3),
texto = "Hola",
matriz = matrix(c(3, 5, 8, 1), nrow = 2)
)
mi_lista
# Acceder a elementos
mi_lista$texto
mi_lista$matriz[1, 2]
Ejercicio:
1. Crea una lista llamada info
que contenga:
Los factores representan datos categóricos.
# Crear un factor
genero <- factor(c("Masculino", "Femenino", "Femenino", "Masculino"))
# Ver niveles
levels(genero)
# cambiar el orden de los niveles
genero <- factor(genero, levels = c("Masculino", "Femenino"))
levels(genero)
Ejercicio:
estado_civil
con los valores:
Soltero
, Casado
,
Divorciado
.Soltero
sea el
primero.En R, puedes realizar operaciones matemáticas, lógicas y de texto con los datos. A continuación, veremos ejemplos de operaciones con datos numéricos, de texto y lógicos.
Crear las variables var1
y var2
con valores
numéricos y realizar las siguientes operaciones:
Suma: var1 + var2
Resta: var1 - var2
Multiplicación: var1 * var2
División: var1 / var2
Potencia: var1 ^ var2
Raíz cuadrada de var1
y var2
Usar
sqrt()
Logaritmo natural de var1
y var2
Usar
log()
Valor absoluto de var1
/ var2
Usar
abs()
Crea una variable con tu fecha de nacimiento y otra con la fecha actual. Calcula tu edad.
Crear las variables texto1
y texto2
con
valores de texto (tu nombre, frases cortas) y realizar las siguientes
operaciones:
Concatenar:paste(texto1, texto2)
Número de caracteres: nchar(texto1)
Convertir a mayúsculas: toupper(texto1)
Convertir a minúsculas: tolower(texto2)
Extraer una parte del texto:
substr(texto1, 1, 3)
Reemplazar parte del texto:
sub("a", "o", texto1)
Dividir el texto en palabras:
strsplit(texto2, " ")
Usando las variables anteriores, realizar las siguientes operaciones lógicas:
Comparar si var1
es mayor que
var2
Comparar si texto1
es igual a
texto2
Comparar si var1
es igual a
var2
Comparar si var1
es diferente de var2
Usar !=
Comparar si texto1
contiene la palabra “hola” Usar
grepl("texto", objeto)
Usa el siguiente código para crear un data frame de ejemplo:
data <- data.frame(
Producto = c("A", "B", "C", "D"),
Precio = c(10, 15, 8, 12),
Ventas = c(100, 200, 150, 50)
)
Responde:
Calcula el ingreso total por producto
(Precio * Ventas
) y agrega una nueva columna al data
frame.
Encuentra el producto con mayores ventas. Usar
subset
y max()
en un filtrado.