# Número entero
<- 5
x print(x)
[1] 5
# Número decimal
<- 5.5
y print(y)
[1] 5.5
#Primeros pasos
En R, hay varios tipos de datos básicos que puedes usar. Aquí hay una descripción de los tipos de datos más comunes.
Los números pueden ser enteros o números decimales.
# Número entero
<- 5
x print(x)
[1] 5
# Número decimal
<- 5.5
y print(y)
[1] 5.5
Las cadenas de texto se representan usando comillas simples o dobles.
<- "Hola, mundo!"
texto
print(texto)
[1] "Hola, mundo!"
Los valores lógicos (booleanos) pueden ser TRUE o FALSE. Los valores lógicos se usan comúnmente para realizar operaciones condicionales.
# Valores lógicos
<- TRUE
verdadero <- FALSE
falso print(verdadero)
[1] TRUE
print(falso)
[1] FALSE
Un vector es una secuencia de datos del mismo tipo. Puedes crear vectores usando la función c().
# Vector numérico
<- c(1, 2, 3, 4, 5)
numeros print(numeros)
[1] 1 2 3 4 5
# Vector de caracteres
<- c("uno", "dos", "tres")
cadenas print(cadenas)
[1] "uno" "dos" "tres"
# Vector lógico
<- c(TRUE, FALSE, TRUE)
logicos print(logicos)
[1] TRUE FALSE TRUE
# Nuevo vector
# ¿Qué ocurre si en un mismo vector dejamos character y numeric?
<- c(1,2,3,"cuatro", "cinco")
combinado
# El resultado es un vector de "character".
combinado
[1] "1" "2" "3" "cuatro" "cinco"
# Confirmamos la clase del vector con la función `class()`
class(combinado)
[1] "character"
# A lo anterior se le ha llamado, "coerción"
En R, la coerción de vectores se refiere al proceso de conversión automática de los elementos de un vector a un tipo de datos común cuando los elementos originales son de tipos diferentes. Esto se hace para asegurar que todas las operaciones en los vectores se realicen de manera consistente y sin errores. R sigue una jerarquía específica de tipos de datos para realizar esta conversión.
Jerarquía de Coerción R tiene una jerarquía de tipos de datos que determina cómo se realiza la coerción. La jerarquía de coerción en R es la siguiente (de menor a mayor):
Cuando se combinan elementos de diferentes tipos en un vector, R los convierte automáticamente al tipo de datos “más alto” en la jerarquía.
** lógico -> entero -> numérico -> cadena de texto (logical -> integer -> numeric -> character) **
<- c(TRUE, FALSE, 1)
vec print(vec) # Output: 1 0 1
[1] 1 0 1
En este ejemplo, TRUE se convierte a 1 y FALSE se convierte a 0.
<- c(1L, 2.5)
vec print(vec) # Output: 1.0 2.5
[1] 1.0 2.5
El número entero 1L se convierte a 1.0 para coincidir con el número numérico 2.5.
<- c(1.5, "a")
vec print(vec) # Output: "1.5" "a"
[1] "1.5" "a"
El número 1.5 se convierte a la cadena de texto “1.5”.
<- list(1, "a", TRUE)
vec print(vec) # Output: [[1]] 1 [[2]] "a" [[3]] TRUE
[[1]]
[1] 1
[[2]]
[1] "a"
[[3]]
[1] TRUE
En una lista, los elementos no se fuerzan a un tipo común; cada elemento puede mantener su tipo de datos original.
Además de la coerción automática, R también permite realizar coerciones explícitas usando funciones específicas como as.numeric(), as.character(), as.integer(), etc.
Ejemplo de Coerción Explícita
<- c("1", "2", "3")
vec <- as.numeric(vec)
numeric_vec print(numeric_vec) # Output: 1 2 3
[1] 1 2 3
Aquí, as.numeric(vec) convierte explícitamente el vector de caracteres vec en un vector numérico.
Notas Importantes
NA (Not Available): Durante la coerción, si algún elemento no puede convertirse correctamente, R genera un valor NA y generalmente emite una advertencia.
Factores: Cuando se trabaja con factores, coercionarlos a otros tipos puede requerir pasos adicionales, como primero convertir el factor a carácter antes de convertirlo a numérico.
Ejemplo
<- factor(c("1", "2", "3"))
factor_vec <- as.character(factor_vec)
char_vec <- as.numeric(char_vec)
numeric_vec print(numeric_vec) # Output: 1 2 3
[1] 1 2 3
Puedes manipular vectores de varias maneras, incluyendo seleccionar elementos, sumar y restar elementos, y más.
# Selección del primer elemento
<- numeros[1]
primer_elemento print(primer_elemento)
[1] 1
# Selección de múltiples elementos
<- numeros[1:3]
primeros_tres print(primeros_tres)
[1] 1 2 3
# Suma de vectores
<- numeros + c(1, 1, 1, 1, 1)
suma print(suma)
[1] 2 3 4 5 6
# Producto de vectores
<- numeros * c(2, 2, 2, 2, 2)
producto print(producto)
[1] 2 4 6 8 10
# Filtrar valores mayores que 2
<- numeros[numeros > 2]
mayores_que_dos print(mayores_que_dos)
[1] 3 4 5
# Filtrar valores iguales a TRUE
<- logicos[logicos == TRUE]
verdaderos print(verdaderos)
[1] TRUE TRUE
En R, una lista es una estructura de datos versátil que puede contener elementos de diferentes tipos, por ejemplo, vectores, matrices, data frames, e incluso otras listas. Esto la vuelve óptima para organizar y manipular datos heterogéneos.
Concepto de list()
Una lista en R se crea utilizando la función list(). A diferencia de los vectores, que deben contener elementos del mismo tipo, las listas pueden contener elementos de diferentes tipos. Cada elemento de una lista puede ser referenciado mediante índices o nombres.
Ejemplo de Creación de una Lista
<- list(
lista1 numero = 1,
nombre = "Juan",
vector = c(1, 2, 3),
matriz = matrix(1:4, nrow = 2),
lista_anidada = list(a = 10, b = 20)
)
print(lista1)
$numero
[1] 1
$nombre
[1] "Juan"
$vector
[1] 1 2 3
$matriz
[,1] [,2]
[1,] 1 3
[2,] 2 4
$lista_anidada
$lista_anidada$a
[1] 10
$lista_anidada$b
[1] 20
Acceso a Elementos de una Lista Puedes acceder a los elementos de una lista utilizando el operador de doble corchete [[ ]] o el operador de signo de dólar $.
Acceso por Índice
print(lista1[[1]]) # [1] 1
[1] 1
print(lista1[[3]]) # [1] 1 2 3
[1] 1 2 3
Acceso por nombre
print(lista1$nombre) # [1] "Juan"
[1] "Juan"
print(lista1$vector) # [1] 1 2 3
[1] 1 2 3
Un data.frame en R es una estructura de datos fundamental y muy versátil que se utiliza para almacenar datos tabulares. Es similar a una tabla en una base de datos o una hoja de cálculo en Excel, donde cada columna puede contener un tipo diferente de datos (numéricos, caracteres, factores, etc.), pero todos los elementos de una columna deben ser del mismo tipo.
Concepto de data.frame
Un data.frame es esencialmente una lista de vectores de igual longitud, donde cada vector representa una columna de datos y cada elemento dentro del vector representa una fila. Los data.frames son utilizados ampliamente en R para la manipulación y análisis de datos.
Creación de un data.frame
Puedes crear un data.frame utilizando la función data.frame().
# Crear un data frame simple
<- data.frame(
df nombre = c("Ana", "Luis", "Marta", "Juan"),
edad = c(23, 35, 29, 40),
salario = c(50000, 60000, 70000, 80000)
)print(df)
nombre edad salario
1 Ana 23 50000
2 Luis 35 60000
3 Marta 29 70000
4 Juan 40 80000