Email efmartinez@icesi.edu.co

Qries eduard-martinez

Qries @emartigo

Qries 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.

1 R y Rstudio

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)

  • Se distribuye como software libre mantenido por el R Core Team.
  • Incluye el intérprete que ejecuta las instrucciones en R, las bibliotecas base y una consola mínima.
  • Puede utilizarse de forma autónoma desde la terminal o integrarse en servidores y procesos automatizados (por ejemplo, cron jobs o scripts de producción).

RStudio (IDE)

  • Constituye un entorno de desarrollo integrado (IDE) creado por Posit (antes RStudio PBC) y se instala después de R, al que usa como motor subyacente.
  • Aporta un editor con resaltado de sintaxis, autocompletado y depuración; paneles para el entorno de objetos, archivos, gráficos, paquetes y ayuda; además de integración con Git/GitHub.
  • Agiliza tareas comunes como la generación de documentos reproducibles (R Markdown/Quarto), el desarrollo de aplicaciones Shiny o la gestión de proyectos de análisis de datos, todo desde una única ventana gráfica.

1.1 Interfaz de R

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.

1.2 Interfaz RStudio

RStudio abre, por defecto, una ventana dividida en cuatro paneles principales, cada uno asociado a una fase del flujo de trabajo:

1.2.1 Editor de scripts

  • Permite redactar archivos R, R Markdown, Quarto, SQL, Python, etc.
  • Incluye resaltado de sintaxis, autocompletado, sangrado automático y marcadores.
  • El código seleccionado se envía a la consola con Ctrl + Enter; el script completo se ejecuta con Ctrl + Shift + S o mediante el botón Source.
  • El Script actúa como tu “cuaderno de trabajo” ayudándote a mantener el orden y a asegurar que tus análisis sean reproducibles.

1.2.2 Consola

  • Ejecuta las instrucciones procedentes del editor o las escritas directamente.
  • Muestra resultados, advertencias (Warning), mensajes (Message) y errores (Error).
  • Conserva el historial de comandos, accesible con las flechas ↑/↓ o con history().

1.2.3 Entorno

  • Environment registra los objetos creados durante la sesión (data frames, funciones, listas, etc.).
  • History conserva la secuencia de comandos ejecutados; desde allí pueden reenviarse a la consola o guardarse en un script.

1.2.4 Pestañas modulares

  • Files: navegación por el sistema de archivos del proyecto.
  • Plots: vista preliminar de gráficos generados (con opciones de exportación).
  • Packages: listado de bibliotecas instaladas y herramienta de actualización.
  • Help: documentación contextual (?función) y viñetas (vignette()).
  • Viewer: salida de aplicaciones Shiny, documentos HTML o visualizaciones interactivas.
  • Git / Terminal (si procede): integración con control de versiones y acceso a la línea de comandos.

2 Primeros pasos en R

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.

2.1 Operaciones aritméticas

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

2.2 Operadores lógicos

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
&amp; 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

2.3 Evaluación de pertenencia con %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

3 Tipos de datos básicos

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.

3.1 Numéricos

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

3.2 Texto (cadenas de caracteres)

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"

3.3 Lógicos

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.)

3.4 Valores especiales

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.

4 Resultados de la Consola

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.

4.1 ¿Qué se imprime en la consola?

Cada expresión evaluada puede producir uno de estos resultados:

  • Resultado normal (sin problemas): R imprime el valor calculado.
  • Mensaje (message): Información útil que no interrumpe la ejecución.
  • Advertencia (warning): Algo no ideal ocurrió, pero la ejecución continúa (suele indicar conversiones o valores indefinidos).
  • Error (error): Un problema crítico detiene la ejecución.
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.

5 Librerías y Funciones

5.1 Librerías:

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).

  • Instalar: solo una vez por equipo/versión de R → install.packages()
  • Cargar (adjuntar): en cada sesión donde la uses → library() o require()
  • Actualizar: cuando haya versiones nuevas → 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()

5.2 Funciones y help

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.