https://eduard-martinez.github.io
📊 Este capítulo es el punto de partida para adentrarse en el mundo de R, un lenguaje de programación para el análisis de datos, la estadística y la ciencia de datos. El estudiante descubrirá qué es R y cómo usar RStudio; el entorno de trabajo donde aprenderá a programar, para transformar datos en insumos para la toma de decisiones, responder preguntas de investigación y crear visualizaciones que comuniquen sus hallazgos.
💻 Exploraremos los tipos de datos básicos (numéricos, texto, lógicos y valores especiales), cómo se manejan objetos en R y cómo trabajar con vectores, matrices, dataframes y listas. También aprenderás qué es el Workspace, el papel de las librerías y funciones, y cómo interpretar los resultados de la consola.
🧰 Piense en este capítulo como su kit de herramientas inicial: lo que aprendra aquí será la base para todo lo que desarrolle más adelante.
R es el lenguaje de programación y el motor de cálculo; RStudio es la interfaz gráfica que facilita trabajar con ese motor.
R (motor de cálculo)
RStudio (IDE)
La consola constituye el espacio donde se introducen instrucciones y
se observa de inmediato el resultado de la evaluación. Cada línea
comienza con el símbolo de promp >; al pulsar
Enter se ejecuta la instrucción y, debajo, se imprime el valor
devuelto o un mensaje de advertencia o error según corresponda. En la
parte superior se visualiza el historial de comandos, lo que permite
reutilizar expresiones previas mediante las flechas del teclado o la
función history().
Cuando el código es más extenso o se desea conservarlo para futuras ejecuciones, lo ideal es trabajar en el Script. Este es un archivo de texto donde se escriben, organizan y comentan las instrucciones antes de ejecutarlas, permitiendo correr una sola línea, un bloque o el programa completo.
RStudio abre, por defecto, una ventana dividida en cuatro paneles principales, cada uno asociado a una fase del flujo de trabajo:
Ctrl + Enter; el script completo se ejecuta con
Ctrl + Shift + S o mediante el botón
Source.Warning), mensajes
(Message) y errores (Error).history().?función) y viñetas (vignette()).Antes de crear objetos, conviene repasar las operaciones básicas y la forma de visualizar resultados en la consola. R permite realizar cálculos aritméticos, evaluaciones lógicas y comparaciones con una sintaxis simple y reglas de precedencia estándar. En esta sección se presentan estos operadores y ejemplos mínimos para interpretar correctamente la salida.
Se utilizan los operadores aritméticos estándar para sumar, restar, multiplicar, dividir y elevar potencias.
| Operador | Descripción | Ejemplo |
|---|---|---|
+
|
Suma | 3 + 2 |
-
|
Resta | 7 - 4 |
*
|
Multiplicación | 6 * 3 |
/
|
División | 8 / 2 |
^, **
|
Exponenciación | 2^3 |
%%
|
Módulo (resto de división) | 10 %% 3 |
%/%
|
División entera | 10 %/% 3 |
Ejemplo de operaciones aritméticas:
1 + 2 # Suma
[1] 3
5 / 2 # División
[1] 2.5
100 %/% 60 # ¿Cuántas horas enteras hay en 100 minutos?
[1] 1
100 %% 60 # ¿Cuántos minutos quedan?
[1] 40
Por defecto, R evalúa siguiendo estas reglas de precedencia (de mayor a menor):
1. ^ → 2) * y / → 3) + y -.
Cuando se desea alterar este orden, conviene usar paréntesis para
hacer explícita la intención y evitar ambigüedades. En expresiones
largas, es buena práctica comentar el resultado esperado al final de la
línea.+y-` (suma y resta)
3 + 2 * 4 # Multiplicación antes de la suma (resultado: 11)
[1] 11
(3 + 2) * 4 # Uso de paréntesis para cambiar precedencia (resultado: 20)
[1] 20
R incluye operadores lógicos elemento a elemento. Úsalos para filtrar, combinar condiciones y construir expresiones.
| Operador | Descripción | Ejemplo |
|---|---|---|
| < , > | Menor y mayor que | 5 > 3 |
| <= , >= | Menor o igual y mayor igual que | 5 >= 5 |
==
|
Igual a | 3 == 3 |
!=
|
Diferente de | 3 != 4 |
&
|
y (AND lógico) | TRUE & FALSE |
|
|
o (OR lógico) | TRUE | FALSE |
!
|
Negación lógica | !TRUE |
Ejemplos de operadores lógicos:
1 > 2 # ¿Es 1 mayor que 2?
[1] FALSE
1 > 2 & 1 > 0.5 # ¿Es 1 mayor que 2 y mayor que 0.5?
[1] FALSE
1 > 2 | 1 > 0.5 # ¿Es 1 mayor que 2 o mayor que 0.5?
[1] TRUE
isTRUE(1 < 2) # TRUE (solo TRUE exacto; NA o 1 no pasan)
[1] TRUE
3 != 4 # TRUE (son diferentes)
[1] TRUE
c(TRUE, FALSE) & c(TRUE, TRUE) # Devuelve TRUE si ambos valores en la misma posición son TRUE
[1] TRUE FALSE
Precaución con la precedencia: Los operadores
relacionales (>, <, ==) se
evalúan antes que (&, |) ya que tiene
precedencia alta.
1 > 0.5 & 2 # ¿Qué pasa aquí?
[1] TRUE
Para evitar confusión, siempre compare valores explícitamente:
1 > 0.5 & 1 > 2 # Evaluación correcta
[1] FALSE
%in%%in% verifica si cada elemento del lado izquierdo
pertenece al conjunto del lado derecho. Es vectorizado y la forma
preferida para “está en…”.
4 %in% 1:10 # ¿Está 4 en la secuencia del 1 al 10?
[1] TRUE
4 %in% 5:10 # ¿Está 4 en la secuencia del 5 al 10?
[1] FALSE
c(4, 11) %in% 1:10
[1] TRUE FALSE
También podemos evaluar igualdad con ==. Sin embargo,
== compara posición a posición y puede reciclar vectores
(riesgo de errores). Para “pertenece a uno de varios valores”, usa
%in%.
1:6 == 4 # compara contra un escalar -> c(FALSE,FALSE,FALSE,TRUE,FALSE,FALSE)
[1] FALSE FALSE FALSE TRUE FALSE FALSE
1:6 == c(4,5) # recicla: compara por posición (cuidado)
[1] FALSE FALSE FALSE FALSE FALSE FALSE
1:6 %in% c(4,5) # forma correcta para pertenencia múltiple
[1] FALSE FALSE FALSE TRUE TRUE FALSE
En R se trabaja con valores que pertenecen a categorías básicas. Por ahora se usaran tres grandes grupos: numéricos, texto y lógicos. Además, verás algunos valores especiales que aparecen en cálculos.
Incluyen enteros y números reales (decimales). Se pueden escribir en notación usual o científica.
10 # entero (R lo maneja como numérico)
[1] 10
3.14 # decimal
[1] 3.14
1e6 # notación científica: 1 * 10^6
[1] 1e+06
Las cadenas se escriben entre comillas simples o dobles. Ambas
funcionan igual; solo asegúrate de abrir y cerrar con el mismo tipo.
Para incluir comillas dentro de una cadena, escápalas con . Las cadenas
admiten secuencias de escape útiles como (salto de línea) y tabulación).
R maneja bien acentos y eñes si tu archivo está en
UTF-8.
"Hola mundo"
[1] "Hola mundo"
"Comillas \"dentro\" de comillas"
[1] "Comillas \"dentro\" de comillas"
'Líneas:\nPrimera\nSegunda' # '\n' se interpreta como salto de línea
[1] "Líneas:\nPrimera\nSegunda"
Los valores lógicos representan verdadero o falso y no llevan
comillas: se escriben TRUE y FALSE (en
mayúsculas). Evita T y F porque son nombres de
objetos y podrían estar redefinidos. El operador ! niega,
& es AND y | es OR. Ten en cuenta que
& y | operan elemento a elemento, mientras
que && y || evalúan solo el primer
elemento (algo útil cuando trabajes con condiciones escalares).
TRUE
FALSE
!TRUE # negación
TRUE & FALSE # AND
TRUE | FALSE # OR
Dato útil: en operaciones aritméticas,
TRUE se comporta como 1 y FALSE como
0. (Esto permite contar condiciones más adelante, sin
introducir funciones por ahora.)
Al calcular en R pueden aparecer valores especiales que conviene
identificar: NA, que representa un dato faltante o
desconocido y puede darse en cualquier tipo; Inf y
-Inf, que indican infinitos (por ejemplo, al dividir por
cero con numerador no nulo); NaN, que señala un resultado
indeterminado o “no numérico” (como 0/0); y
NULL, que denota ausencia de valor u objeto y no es
equivalente a NA.
NA # dato faltante
Inf # infinito
-Inf # menos infinito
NaN # indeterminado
NULL # ausencia de valor
¿Cómo suelen aparecer?
1/0 # Inf
[1] Inf
-1/0 # -Inf
[1] -Inf
0/0 # NaN
[1] NaN
1 + NA # NA (cualquier operación con NA suele dar NA)
[1] NA
Diferencias clave: NA indica que hay un lugar para un
valor, pero no sabemos cuál es; NULL significa que no hay
valor (ausencia total); NaN corresponde a un resultado
indeterminado de una operación numérica; y
Inf/-Inf representan resultados no acotados
que crecen sin límite.
Cuando R está listo para ejecutar una instrucción, muestra el prompt
>. Si al presionar Enter la instrucción quedó incompleta
(p. ej., paréntesis o comillas sin cerrar, o un operador al final de la
línea), R cambia al prompt de continuación +, indicando que
espera que completes lo que falta. Ejemplos que provocan + (no se
ejecutan, solo ilustran):
> (1 + 2 # falta cerrar el paréntesis
+ "hola # falta cerrar la comilla
Para volver al > se debe completar lo pendiente y
presiona Enter o cancelar la entrada actual con
Esc (en RStudio.
Cada expresión evaluada puede producir uno de estos resultados:
1 + 2
[1] 3
2 + "2"
Error in 2 + "2": argumento no-numérico para operador binario
Resumen rápido:
• ">" listo para ejecutar; "+" esperando que completes una instrucción.
• Resultado: valor calculado.
• Message: información; no detiene.
• Warning: posible problema; no detiene.
• Error: detiene la ejecución.
• En Rmd: usa message=FALSE, warning=FALSE, error=TRUE con criterio.
Una librería (paquete) es un conjunto de funciones,
datos y documentación pensadas para resolver tareas específicas (p. ej.,
tidyverse para manipulación/visualización, rio
para importación/exportación).
install.packages()library() o require()update.packages()install.packages("tidyverse")
install.packages(c("skimr","rio"))
Nota: library("pkg") lanza error si al
llamar la librería no está instalada. require("pkg")
devuelve TRUE/FALSE; si no está, pero no
detiene el script.
library(tidyverse)
require(skimr)
Nota: puede inspeccionar las librerías que tiene
activas en su sesión corriendo la función sessionInfo()
sobre la consola de R. Cuando inicia sesión, R carga 7 librerías bases
(usted,stats,graphics,grDevices,utils,
datasets, methods y base). Pero
usted puede instalar/llamar cerca de 22147 librerías disponibles en el
CRAN de R.
sessionInfo()
Una función permite crear, editar, transformar o eliminar objetos. Están contenidas en librerías. Y cada función contiene por lo menos 1 argumento.