1 Introducción

1.1 ¿Qué es R?

R es un lenguaje de programación y entorno especializado en:

  • Análisis estadístico
  • Visualización de datos
  • Computación científica
  • Modelado predictivo

Características principales:

  • Open source y gratuito
  • Gran comunidad de usuarios
  • Más de 19,000 paquetes disponibles en CRAN
  • Multiplataforma (Windows, Mac, Linux)

1.2 ¿Qué es RStudio?

RStudio es un IDE (Entorno de Desarrollo Integrado) para R que proporciona:

  • Editor de código con resaltado de sintaxis
  • Consola interactiva
  • Visor de gráficos
  • Gestor de paquetes
  • Integración con Git/GitHub
  • Soporte para R Markdown

RStudio hace que trabajar con R sea más fácil y productivo

2 Requisitos del Sistema

2.1 Requisitos Mínimos

2.1.1 Hardware

  • Procesador: 1 GHz o superior
  • RAM: 2 GB mínimo (4 GB recomendado)
  • Espacio en disco: 500 MB para R + 250 MB para RStudio
  • Pantalla: 1024x768 o superior

2.1.2 Software

  • Windows 10/11, macOS 10.15+, o Linux
  • Conexión a internet para descargar e instalar paquetes

3 Instalación de R

3.1 Paso 1: Descargar R

  1. Visita el sitio oficial de R: https://cran.r-project.org/
  2. Selecciona tu sistema operativo:
    • Download R for Windows
    • Download R for macOS
    • Download R for Linux
  3. Para Windows/Mac: descarga el instalador más reciente
# Versión actual recomendada: R 4.3.x o superior

3.2 Paso 2: Instalar R en Windows

  1. Ejecuta el archivo .exe descargado
  2. Selecciona el idioma de instalación
  3. Acepta los términos de licencia
  4. Elige la carpeta de instalación (por defecto: C:\Program Files\R\R-4.x.x)
  5. Selecciona los componentes (recomendado: todas las opciones por defecto)
  6. Configura las opciones de inicio (recomendado: por defecto)
  7. Haz clic en “Instalar”

Tiempo estimado: 2-3 minutos

3.3 Paso 3: Instalar R en macOS

  1. Abre el archivo .pkg descargado
  2. Sigue el asistente de instalación
  3. Acepta los términos de licencia
  4. Selecciona el disco de instalación
  5. Haz clic en “Instalar”
  6. Ingresa tu contraseña de administrador cuando se solicite

Nota: Para macOS 11+ (Big Sur o superior), necesitas R 4.1.0 o más reciente

3.4 Paso 4: Instalar R en Linux (Ubuntu/Debian)

Abre la terminal y ejecuta:

# Actualizar el índice de paquetes
sudo apt update

# Instalar dependencias
sudo apt install -y r-base r-base-dev

# Verificar la instalación
R --version

Para otras distribuciones de Linux, consulta: https://cran.r-project.org/bin/linux/

3.5 Verificar la Instalación de R

Abre R desde el menú de inicio o terminal y verifica:

# Versión de R
R.version.string

# Información del sistema
sessionInfo()

# Directorio de trabajo actual
getwd()

# Prueba simple
print("¡R está funcionando correctamente!")

Si ves el prompt >, ¡R está instalado correctamente!

4 Instalación de RStudio

4.1 Paso 1: Descargar RStudio

  1. Visita: https://posit.co/download/rstudio-desktop/
  2. Selecciona “Download RStudio Desktop”
  3. Elige la versión para tu sistema operativo
  4. Descarga el instalador

Versiones disponibles: - RStudio Desktop (gratuito) - ¡Recomendado! - RStudio Desktop Pro (de pago)

4.2 Paso 2: Instalar RStudio

4.2.1 Windows

  1. Ejecuta el archivo .exe
  2. Sigue el asistente de instalación
  3. Acepta la ubicación predeterminada
  4. Haz clic en “Instalar”

4.2.2 macOS

  1. Abre el archivo .dmg
  2. Arrastra RStudio a la carpeta Aplicaciones

4.2.3 Linux (Ubuntu/Debian)

sudo dpkg -i rstudio-xxx-amd64.deb
sudo apt-get install -f

5 Primeros comandos en R

5.1 Operaciones básicas

2 + 3
## [1] 5
10 / 2
## [1] 5
sqrt(25)
## [1] 5

5.2 Asignación de objetos

x <- 10
x * 2
## [1] 20

6 2. Tipos de datos, objetos y estructuras en R

6.1 Tipos de datos básicos

Los tipos de datos más comunes en R son:

  • Numérico (numeric)

  • Entero (integer)

  • Lógico (logical)

  • Carácter (character)

6.2 Ejemplo práctico

edad <- 20
ingreso <- 8500.50
estudia <- TRUE
nombre <- "María"
class(edad)
## [1] "numeric"
class(ingreso)
## [1] "numeric"
class(estudia)
## [1] "logical"
class(nombre)
## [1] "character"

6.3 Estructuras de datos

Las estructuras más utilizadas son:

  • Vectores

  • Data frames

  • Listas

  • Matrices

7 Ejemplo: vector y data frame

7.1 Vector

ingresos <- c(8000, 9500, 7200, 11000)
ingresos
## [1]  8000  9500  7200 11000

7.2 Data frame

datos <- data.frame(
                    nombre = c("Ana", "Luis", "Carlos", "Elena"),
                    edad = c(22, 24, 21, 23),
                    ingreso = c(8000, 9500, 7200, 11000)
                  )

datos
# Crear un diagrama visual simple
data <- data.frame(
                  estructura = c("Vector", "Matriz", "Data Frame", "Lista"),
                  dimension = c("1D", "2D", "2D", "nD"),
                  tipo = c("Homogéneo", "Homogéneo", "Heterogéneo", "Heterogéneo")
                  )

data

Características principales:

  • Dimensionalidad: 1D, 2D, o multidimensional
  • Tipo de datos: Homogéneos vs heterogéneos
  • Mutabilidad: Pueden modificarse después de crearse
  • Eficiencia: Algunas operaciones son más rápidas en ciertas estructuras

7.3 Clasificación de estructuras de datos

Estructura Dimensiones Tipos de datos Uso principal
Vector 1D Homogéneo Secuencias simples
Matriz 2D Homogéneo Álgebra lineal
Data Frame 2D Heterogéneo Tablas de datos
Lista nD Heterogéneo Estructuras complejas

7.3.1 Verificar el tipo de objeto

class(data)
## [1] "data.frame"
typeof(data)
## [1] "list"
str(data)  # Estructura detallada
## 'data.frame':    4 obs. of  3 variables:
##  $ estructura: chr  "Vector" "Matriz" "Data Frame" "Lista"
##  $ dimension : chr  "1D" "2D" "2D" "nD"
##  $ tipo      : chr  "Homogéneo" "Homogéneo" "Heterogéneo" "Heterogéneo"

7.4 Vectores

7.4.1 ¿Qué es un vector?

Un vector es la estructura de datos más básica en R:

  • Secuencia unidimensional de elementos
  • Todos los elementos deben ser del mismo tipo**
  • Es la estructura fundamental en R
# Crear vectores
numeros <- c(1, 2, 3, 4, 5)
nombres <- c("Ana", "Luis", "María")
logicos <- c(TRUE, FALSE, TRUE)

# Mostrar
print(numeros)
## [1] 1 2 3 4 5

En R, incluso un número único es un vector de longitud 1

7.5 Tipos de vectores

R tiene 6 tipos atómicos de vectores:

# 1. Numérico (numeric/double)
v_num <- c(1.5, 2.3, 3.7)
typeof(v_num)
## [1] "double"
# 2. Entero (integer)
v_int <- c(1L, 2L, 3L)  # La 'L' indica entero
typeof(v_int)
## [1] "integer"
# 3. Carácter (character)
v_char <- c("hola", "mundo")
typeof(v_char)
## [1] "character"

7.6 Tipos de vectores (continuación)

# 4. Lógico (logical)
v_log <- c(TRUE, FALSE, T, F)
typeof(v_log)
## [1] "logical"
# 5. Complejo (complex)
v_complex <- c(1+2i, 3+4i)
typeof(v_complex)
## [1] "complex"
# 6. Raw (bytes sin procesar)
v_raw <- charToRaw("Hola")
typeof(v_raw)
## [1] "raw"

7.7 Creación de vectores

Múltiples formas de crear vectores:

# Función c() - concatenar
v1 <- c(1, 2, 3, 4, 5)

# Secuencias con :
v2 <- 1:10
print(v2)
##  [1]  1  2  3  4  5  6  7  8  9 10
# Función seq()
v3 <- seq(from = 0, to = 1, by = 0.1)
print(v3)
##  [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

7.8 Creación de vectores (continuación)

# Función seq() - alternativa
v4 <- seq(0, 10, length.out = 5)
print(v4)
## [1]  0.0  2.5  5.0  7.5 10.0
# Repeticiones con rep()
v5 <- rep(c(1, 2, 3), times = 3)
print(v5)
## [1] 1 2 3 1 2 3 1 2 3
v6 <- rep(c("A", "B"), each = 4)
print(v6)
## [1] "A" "A" "A" "A" "B" "B" "B" "B"

7.9 Propiedades de vectores

mi_vector <- c(10, 20, 30, 40, 50)

# Longitud
length(mi_vector)
## [1] 5
# Tipo de datos
typeof(mi_vector)
## [1] "double"
class(mi_vector)
## [1] "numeric"
# Nombres de elementos
names(mi_vector) <- c("a", "b", "c", "d", "e")
print(mi_vector)
##  a  b  c  d  e 
## 10 20 30 40 50

7.10 Indexación de vectores

Acceder a elementos específicos:

frutas <- c("manzana", "naranja", "plátano", "uva", "pera")

# Por posición (empieza en 1)
frutas[1]
## [1] "manzana"
frutas[c(1, 3, 5)]
## [1] "manzana" "plátano" "pera"
# Por rango
frutas[2:4]
## [1] "naranja" "plátano" "uva"
# Excluir elementos
frutas[-2]
## [1] "manzana" "plátano" "uva"     "pera"
frutas[-c(1, 3)]
## [1] "naranja" "uva"     "pera"

7.11 Indexación por nombres y condiciones

edades <- c(Juan = 25, María = 30, Pedro = 35, Ana = 28)

# Por nombre
edades["Juan"]
## Juan 
##   25
edades[c("Juan", "Ana")]
## Juan  Ana 
##   25   28
# Por condición lógica
edades[edades > 28]
## María Pedro 
##    30    35
edades[edades >= 30]
## María Pedro 
##    30    35
# Índices que cumplen la condición
which(edades > 28)
## María Pedro 
##     2     3

7.12 Operaciones con vectores

x <- c(1, 2, 3, 4, 5)
y <- c(10, 20, 30, 40, 50)

# Operaciones elemento por elemento (vectorización)
x + y
## [1] 11 22 33 44 55
x * y
## [1]  10  40  90 160 250
x^2
## [1]  1  4  9 16 25
# Operaciones con reciclaje
x + 10  # Suma 10 a cada elemento
## [1] 11 12 13 14 15
x * 2   # Multiplica cada elemento por 2
## [1]  2  4  6  8 10

7.13 Funciones útiles para vectores

numeros <- c(5, 2, 8, 1, 9, 3)

# Estadísticas básicas
sum(numeros)      # Suma
## [1] 28
mean(numeros)     # Media
## [1] 4.666667
median(numeros)   # Mediana
## [1] 4
sd(numeros)       # Desviación estándar
## [1] 3.265986
min(numeros)      # Mínimo
## [1] 1
max(numeros)      # Máximo
## [1] 9

7.14 Funciones útiles (continuación)

# Ordenamiento
sort(numeros)                    # Ascendente
## [1] 1 2 3 5 8 9
sort(numeros, decreasing = TRUE) # Descendente
## [1] 9 8 5 3 2 1
order(numeros)                   # Índices ordenados
## [1] 4 2 6 1 3 5
# Valores únicos
valores <- c(1, 2, 2, 3, 3, 3, 4)
unique(valores)
## [1] 1 2 3 4
table(valores)  # Frecuencias
## valores
## 1 2 3 4 
## 1 2 3 1

7.15 Coerción de tipos

Cuando mezclas tipos, R coerciona al tipo más general:

# logical < integer < numeric < character

# Numeric y character → character
c(1, 2, "tres")
## [1] "1"    "2"    "tres"
# Numeric y logical → numeric
c(1, 2, TRUE)  # TRUE se convierte en 1
## [1] 1 2 1
# Character y logical → character
c("hola", TRUE)
## [1] "hola" "TRUE"