1 ¿Qué son R y RStudio?

R es un lenguaje y entorno de programación libre y gratuito, especializado en análisis estadístico, manejo de datos y gráficos.

RStudio (hoy desarrollado por Posit) es un entorno de desarrollo integrado (IDE): una interfaz amigable que organiza el trabajo con R en ventanas (editor, consola, gráficos, archivos, etc.).

En otras palabras: R es el motor y RStudio es el tablero desde el cual lo manejamos cómodamente.

¿Por qué R en ingeniería? Permite automatizar cálculos, analizar datos de sensores o procesos, hacer control de calidad, simular experimentos y generar reportes reproducibles. Todo el análisis queda escrito en código, de modo que cualquier resultado puede repetirse y auditarse.


2 Instalación de R y RStudio

Orden importante: se instala primero R y después RStudio (tanto en Windows como en macOS). RStudio necesita que R ya esté en el equipo para funcionar.

2.1 Según su sistema operativo

2.1.1 Windows

Paso 1 — Instalar R (CRAN):

  1. Ingrese a https://cran.r-project.org
  2. Haga clic en “Download R for Windows” → “base”.
  3. Descargue “Download R x.y.z for Windows” (la versión más reciente).
  4. Ejecute el instalador .exe y acepte las opciones por defecto (Siguiente → Siguiente → Finalizar).

Paso 2 — Instalar RStudio Desktop (Posit):

  1. Ingrese a https://posit.co/download/rstudio-desktop/
  2. Descargue “RStudio Desktop for Windows” (versión gratuita Open Source).
  3. Ejecute el instalador .exe con las opciones por defecto.
  4. Abra RStudio desde el menú de inicio; encuentra R automáticamente.

2.1.2 macOS

Paso 1 — Instalar R (CRAN):

  1. Ingrese a https://cran.r-project.org → “Download R for macOS”.
  2. Descargue el paquete .pkg según el chip de su Mac:
    • Apple Silicon (M1/M2/M3/M4) → versión arm64.
    • Intel → versión x86_64.
  3. Ejecute el .pkg y siga el asistente de instalación.

Paso 2 — Instalar RStudio Desktop (Posit):

  1. Ingrese a https://posit.co/download/rstudio-desktop/
  2. Descargue el archivo .dmg para macOS.
  3. Ábralo y arrastre el ícono de RStudio a la carpeta Aplicaciones.
  4. Abra RStudio desde Launchpad o la carpeta Aplicaciones.

Nota macOS: si al abrir aparece una advertencia de seguridad, autorice la app en Ajustes del Sistema → Privacidad y seguridad → Abrir de todos modos. ¿No sabe qué chip tiene su Mac? Menú Apple → Acerca de esta Mac.

2.2 Verificación de la instalación

En la Consola de RStudio escriba lo siguiente y presione Enter. Si R responde, ¡todo quedó bien! (es igual en Windows y en macOS)

R.version.string   # versión de R instalada
2 + 2              # primera operación

3 Reconocimiento de la interfaz: las cuatro ventanas

Al abrir RStudio verá la pantalla dividida en cuatro paneles. El siguiente esquema resume la función de cada uno:

Las cuatro ventanas de RStudio: Editor/Source, Consola, Environment/History y Files/Plots/Packages/Help.

Las cuatro ventanas de RStudio: Editor/Source, Consola, Environment/History y Files/Plots/Packages/Help.

Panel Ubicación típica ¿Para qué sirve?
Editor / Source Superior izquierda Donde se escribe y guarda el código (scripts .R, documentos .Rmd).
Consola (Console) Inferior izquierda Donde R ejecuta las órdenes y muestra los resultados.
Environment / History Superior derecha Lista los objetos creados (datos, variables) y el historial de comandos.
Files / Plots / Packages / Help Inferior derecha Explorador de archivos, visor de gráficos, administrador de paquetes y ayuda.

Crear un script: menú File → New File → R Script (o Ctrl + Shift + N). Ejecutar una línea: ubique el cursor en ella y presione Ctrl + Enter. Crear este tipo de documento: File → New File → R Markdown…

Consejo: escriba siempre el código en el Editor (no directamente en la consola) y guárdelo. Así su trabajo queda documentado y se puede volver a ejecutar.


4 RStudio como calculadora

R ejecuta operaciones aritméticas directamente. Pruebe estos ejemplos:

# Operaciones básicas
5 + 3
## [1] 8
10 - 4
## [1] 6
6 * 7
## [1] 42
20 / 3
## [1] 6.666667
2 ^ 10        # potencia
## [1] 1024
17 %% 5       # residuo (módulo)
## [1] 2
17 %/% 5      # división entera
## [1] 3

Respeta la jerarquía de operaciones y permite usar paréntesis:

(4 + 6) / 2
## [1] 5
sqrt(144)     # raíz cuadrada
## [1] 12
exp(1)        # número e
## [1] 2.718282
log(100)      # logaritmo natural
## [1] 4.60517
log10(1000)   # logaritmo base 10
## [1] 3
round(3.14159, 2)  # redondear a 2 decimales
## [1] 3.14

4.1 Variables y vectores

Se asigna un valor a un nombre con el operador <-:

# Variables
base   <- 10
altura <- 5
area   <- (base * altura) / 2
area
## [1] 25
# Un vector agrupa varios valores con c()
mediciones <- c(24.8, 25.1, 24.9, 25.3, 24.7, 25.0)
mediciones
## [1] 24.8 25.1 24.9 25.3 24.7 25.0
mean(mediciones)   # promedio del vector
## [1] 24.96667

Mini-aplicación. Si una pieza tiene diámetro nominal de 25 mm y tolerancia ±0.5 mm, podemos verificar rápidamente cuáles mediciones están dentro de especificación:

mediciones >= 24.5 & mediciones <= 25.5
## [1] TRUE TRUE TRUE TRUE TRUE TRUE

Cada TRUE indica una pieza conforme.


5 Instalación y carga de paquetes

R trae muchas funciones de fábrica (R base), pero su poder se amplía con paquetes creados por la comunidad y alojados en CRAN.

  • Instalar un paquete (se hace una sola vez por equipo):
install.packages("readxl")   # leer archivos de Excel
install.packages("ggplot2")  # gráficos avanzados
  • Cargar un paquete (se hace en cada sesión, antes de usarlo):
library(readxl)
library(ggplot2)

Regla de oro: install.packages() una vez; library() cada vez que abra RStudio y vaya a usar ese paquete. También puede instalar paquetes desde el panel Packages → Install.


6 Guardado de archivos y directorio de trabajo

6.1 El directorio de trabajo

Es la carpeta donde R busca y guarda archivos por defecto.

getwd()                       # muestra el directorio actual
setwd("C:/Users/Victor/Datos")  # lo cambia (use / o \\ en Windows)

Recomendado: trabaje con Proyectos de RStudio (File → New Project). Cada proyecto fija su propia carpeta de trabajo y mantiene todo ordenado (datos, scripts, resultados).

6.2 Tipos de archivo que se guardan

  • Script de R (.R): código. File → Save o Ctrl + S.
  • R Markdown (.Rmd): texto + código + resultados (como esta guía). Se compila con el botón Knit.
  • Gráficos: desde el panel Plots → Export, o por código:
png("histograma.png", width = 800, height = 600)  # abre el archivo
hist(mediciones)                                  # dibuja
dev.off()                                         # cierra y guarda

7 Carga de datos

7.1 Conjuntos de datos incluidos en R

R trae datos de práctica. Por ejemplo mtcars:

data(mtcars)
head(mtcars)   # primeras 6 filas

7.2 Crear un conjunto de datos de ingeniería (simulado)

Para esta guía usaremos un conjunto simulado de control de calidad en una línea de producción. Se fija una semilla (set.seed) para que los resultados sean reproducibles.

set.seed(123)
n <- 120

produccion <- data.frame(
  diametro    = round(rnorm(n, mean = 25,  sd = 0.8), 2),   # mm
  resistencia = round(rnorm(n, mean = 450, sd = 35),  1),   # MPa
  temperatura = round(rnorm(n, mean = 70,  sd = 5),   1),   # °C del proceso
  proveedor   = factor(sample(c("A","B","C"), n, replace = TRUE, prob = c(.5,.3,.2))),
  turno       = factor(sample(c("Día","Noche"), n, replace = TRUE)),
  estado      = factor(sample(c("Conforme","No conforme"), n, replace = TRUE, prob = c(.85,.15)))
)

head(produccion)

7.3 Guardar y leer un archivo CSV

Guardamos el conjunto como CSV y luego lo volvemos a leer: este es el flujo real cuando los datos vienen de un archivo.

# Guardar en la carpeta de trabajo
write.csv(produccion, "produccion.csv", row.names = FALSE)

# Leer el archivo (como harías con tus propios datos)
datos <- read.csv("produccion.csv")
head(datos)

Para archivos de Excel use el paquete readxl:

library(readxl)
datos <- read_excel("produccion.xlsx", sheet = "Hoja1")

También puede importar con el asistente gráfico: panel Environment → Import Dataset.

7.4 Inspeccionar los datos

dim(datos)      # filas y columnas
## [1] 120   6
names(datos)    # nombres de las variables
## [1] "diametro"    "resistencia" "temperatura" "proveedor"   "turno"      
## [6] "estado"
str(datos)      # estructura (tipo de cada variable)
## 'data.frame':    120 obs. of  6 variables:
##  $ diametro   : num  24.6 24.8 26.2 25.1 25.1 ...
##  $ resistencia: num  454 417 433 441 514 ...
##  $ temperatura: num  66.1 67.5 77.5 64.3 69.1 79.5 69.5 63.2 66.7 72.4 ...
##  $ proveedor  : chr  "A" "B" "B" "C" ...
##  $ turno      : chr  "Noche" "Día" "Noche" "Noche" ...
##  $ estado     : chr  "Conforme" "Conforme" "Conforme" "Conforme" ...

8 Estadística descriptiva con funciones base de R

8.1 Variables cuantitativas (continuas)

# Medidas de tendencia central
mean(datos$diametro)      # media
## [1] 25.01267
median(datos$diametro)    # mediana
## [1] 24.965
# Medidas de dispersión
var(datos$diametro)       # varianza
## [1] 0.5119592
sd(datos$diametro)        # desviación estándar
## [1] 0.7155133
range(datos$diametro)     # mínimo y máximo
## [1] 23.15 26.75
IQR(datos$resistencia)    # rango intercuartílico
## [1] 45.175
# Cuantiles
quantile(datos$resistencia)
##      0%     25%     50%     75%    100% 
## 378.100 424.850 443.350 470.025 563.400
# Resumen de los cinco números + media
summary(datos$resistencia)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   378.1   424.9   443.4   449.1   470.0   563.4

Resumen de todo el conjunto a la vez:

summary(datos)
##     diametro      resistencia     temperatura     proveedor        
##  Min.   :23.15   Min.   :378.1   Min.   :57.70   Length:120        
##  1st Qu.:24.54   1st Qu.:424.9   1st Qu.:67.35   Class :character  
##  Median :24.96   Median :443.4   Median :70.30   Mode  :character  
##  Mean   :25.01   Mean   :449.1   Mean   :70.43                     
##  3rd Qu.:25.45   3rd Qu.:470.0   3rd Qu.:74.20                     
##  Max.   :26.75   Max.   :563.4   Max.   :82.90                     
##     turno              estado         
##  Length:120         Length:120        
##  Class :character   Class :character  
##  Mode  :character   Mode  :character  
##                                       
##                                       
## 

8.1.1 Descriptivos por grupo

A menudo interesa comparar grupos (por turno, proveedor, etc.). La función tapply() aplica un cálculo a cada grupo:

# Resistencia promedio según el turno
tapply(datos$resistencia, datos$turno, mean)
##      Día    Noche 
## 448.5823 449.6121
# Desviación estándar del diámetro según proveedor
tapply(datos$diametro, datos$proveedor, sd)
##         A         B         C 
## 0.6980649 0.7579682 0.7170957

8.2 Variables cualitativas (categóricas)

Para variables categóricas se usan tablas de frecuencia:

# Frecuencias absolutas
table(datos$proveedor)
## 
##  A  B  C 
## 62 37 21
# Frecuencias relativas (proporciones)
prop.table(table(datos$proveedor))
## 
##         A         B         C 
## 0.5166667 0.3083333 0.1750000
# En porcentaje, redondeado
round(100 * prop.table(table(datos$estado)), 1)
## 
##    Conforme No conforme 
##        91.7         8.3
# Tabla cruzada (dos variables)
table(datos$proveedor, datos$estado)
##    
##     Conforme No conforme
##   A       56           6
##   B       34           3
##   C       20           1

9 Gráficos para variables continuas

9.1 Histograma

Muestra la forma de la distribución de una variable continua.

hist(datos$diametro,
     main = "Distribución del diámetro de las piezas",
     xlab = "Diámetro (mm)", ylab = "Frecuencia",
     col = "#2c7fb8", border = "white")

9.2 Diagrama de caja (boxplot)

Resume mediana, cuartiles y valores atípicos. Es ideal para comparar grupos.

# Boxplot simple
boxplot(datos$resistencia,
        main = "Resistencia del material",
        ylab = "Resistencia (MPa)", col = "#2e8b57")

# Boxplot por grupo: resistencia según turno
boxplot(resistencia ~ turno, data = datos,
        main = "Resistencia por turno",
        xlab = "Turno", ylab = "Resistencia (MPa)",
        col = c("#2c7fb8", "#ffa500"))

9.3 Gráfico de dispersión

Muestra la relación entre dos variables continuas.

plot(datos$temperatura, datos$resistencia,
     main = "Resistencia vs. temperatura del proceso",
     xlab = "Temperatura (°C)", ylab = "Resistencia (MPa)",
     pch = 19, col = "#2c7fb8")

# Línea de tendencia (regresión lineal)
abline(lm(resistencia ~ temperatura, data = datos), col = "red", lwd = 2)

¿Qué gráfico usar? Histograma → forma de una variable continua. Boxplot → comparar grupos y detectar atípicos. Dispersión → relación entre dos variables continuas.


10 Gráficos para variables cualitativas

Para variables categóricas se grafican sus frecuencias.

10.1 Diagrama de barras

barplot(table(datos$proveedor),
        main = "Número de piezas por proveedor",
        xlab = "Proveedor", ylab = "Frecuencia",
        col = c("#2c7fb8", "#2e8b57", "#ffa500"))

Barras agrupadas para dos variables (estado por proveedor):

barplot(table(datos$estado, datos$proveedor),
        beside = TRUE,
        main = "Estado de la pieza según proveedor",
        xlab = "Proveedor", ylab = "Frecuencia",
        col = c("#2e8b57", "#d7301f"),
        legend.text = TRUE,
        args.legend = list(x = "topright", bty = "n"))

10.2 Diagrama circular (de pastel)

Útil para mostrar la composición porcentual.

tb   <- table(datos$proveedor)
porc <- round(100 * tb / sum(tb), 1)
etiquetas <- paste0(names(tb), " (", porc, "%)")

pie(tb, labels = etiquetas,
    main = "Participación por proveedor",
    col = c("#2c7fb8", "#2e8b57", "#ffa500"))

Recomendación. El diagrama de barras suele leerse mejor que el circular cuando hay muchas categorías o valores parecidos; reserve el circular para pocas categorías y cuando interese resaltar proporciones.


11 Cierre y buenas prácticas

  • Escriba el código en el Editor y guárdelo; no trabaje solo en la consola.
  • Use Proyectos de RStudio para mantener cada curso o trabajo ordenado.
  • Comente su código con # para recordar qué hace cada línea.
  • Fije una semilla (set.seed) cuando simule datos, para que los resultados sean reproducibles.
  • Pida ayuda de cualquier función con ?nombre (por ejemplo, ?hist).

12 Referencias

  • R Core Team (2024). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. https://www.r-project.org
  • Posit Software, PBC (2024). RStudio Desktop. https://posit.co/download/rstudio-desktop/
  • Wickham, H., & Grolemund, G. (2017). R for Data Science. O’Reilly. https://r4ds.hadley.nz
  • Walpole, R. E., Myers, R. H., Myers, S. L., & Ye, K. (2007). Probabilidad y Estadística para Ingeniería y Ciencias (6ª ed.). Pearson Educación.