Clase introductoria lista para publicar en RPubs. Contiene explicaciones breves y bloques de código para ejecutar en RStudio. Pensada como el módulo inicial del Seminario de Instrumentos Computacionales (RStudio).

1 1. ¿Cómo ejecutar código en RStudio?

Podés correr código de varias maneras:

  • Ctrl/Cmd + Enter: se ejecuta la línea actual (o la selección si marcaste varias líneas).
  • Botón Run (barra superior del editor): igual que Ctrl/Cmd + Enter.
  • Consola: escribir directamente y presionar Enter.
  • Knit (RMarkdown): ejecuta todos los chunks y genera un documento (HTML, PDF, Word).

Probemos el primer código:

print("Este es mi primer código")
## [1] "Este es mi primer código"

2 2. Objetos y asignación

En R asignamos con <- (recomendado) o = (válido pero menos usado).

valor_1 <- 5
valor_2 <- 5 * 5
c(5, 5*5)                       # vector numérico
## [1]  5 25
c("dos", "dos días")            # vector de texto (character)
## [1] "dos"      "dos días"
c(5*5, "días")                  # coerce: todo a texto
## [1] "25"   "días"
Objeto_1 <- 5
Objeto_2 <- 5 * 6
Objeto_3 <- Objeto_1 + Objeto_2
Objeto_3
## [1] 35

3 3. Vectores y reciclaje

La función c() concatena elementos. Muchas operaciones son vectorizadas y R puede reciclar tamaños.

vector_0 <- c(1, 3, 4)
vector_1 <- vector_0 + 12
vector_2 <- vector_0 + (12:14)  # suma elemento a elemento
vector_0; vector_1; vector_2
## [1] 1 3 4
## [1] 13 15 16
## [1] 13 16 18

4 4. Cadenas de texto y paste()

Arg_1 <- "Muchaaaachos"
Arg_2 <- "Ahora nos volvimos a ilusionar"
Arg <- paste(Arg_1, Arg_2)
Arg
## [1] "Muchaaaachos Ahora nos volvimos a ilusionar"

5 5. Clases de objetos y pruebas de tipo

class(5)               # numeric (doble precisión por defecto)
## [1] "numeric"
class("ARGENTINA")     # character
## [1] "character"
class(TRUE)            # logical
## [1] "logical"
is.integer(5)          # FALSE: 5 es numeric; 5L sería integer
## [1] FALSE
is.integer("Argentina")
## [1] FALSE
is.character("Argentina")
## [1] TRUE

6 6. Trabajar con texto: strsplit() y stringr

# Base R
strsplit(x = "Campeones del Mundo - 2022", split = "-")
## [[1]]
## [1] "Campeones del Mundo " " 2022"
# Con stringr (opcional, requiere paquete)
# install.packages("stringr")  # si no lo tenés
# stringr::str_split("Campeones del Mundo - 2022", "-")

7 7. NA, suma y redondeo

valores <- c(5, 25, 65, NA, 110, 220)
sum(valores)                  # NA por defecto si hay faltantes
## [1] NA
sum(valores, na.rm = TRUE)    # ignorar NA
## [1] 425
pi <- 3.141592653
pi_inter <- round(pi)         # redondeo al entero más cercano
pi_inter
## [1] 3
pi_inter <- round(pi, digits = 2)
pi_inter
## [1] 3.14

8 8. Data frame: sede, año, campeón, público y penales

Creamos un data frame simple (Mundiales 2006–2022). Notá que usamos año con ñ; en fórmulas puede requerir comillas invertidas (`año`).

sede    <- c("Alemania","Sudáfrica","Brasil","Rusia","Qatar")
año     <- seq(2006, 2022, 4)
campeon <- c("Italia","España","Alemania","Francia","Argentina")
publico <- c(69000, 84490, 74738, 78000, 88966)
penales <- c(TRUE, FALSE, FALSE, FALSE, TRUE)

df <- data.frame(sede, año, campeon, publico, penales, check.names = FALSE)
df
##        sede  año   campeon publico penales
## 1  Alemania 2006    Italia   69000    TRUE
## 2 Sudáfrica 2010    España   84490   FALSE
## 3    Brasil 2014  Alemania   74738   FALSE
## 4     Rusia 2018   Francia   78000   FALSE
## 5     Qatar 2022 Argentina   88966    TRUE

8.1 8.1 Dimensiones, nombres, filas y clases

dim(df)     # nrow, ncol
## [1] 5 5
names(df)   # nombres de columnas
## [1] "sede"    "año"     "campeon" "publico" "penales"
nrow(df)    # cantidad de filas
## [1] 5
class(df)   # clase del objeto (data.frame)
## [1] "data.frame"

8.2 8.2 Indexación: por posición, por nombre, negativas y rangos

actual     <- campeon[5]        # elemento 5
ultimos_2  <- campeon[4:5]      # rango
out_ger    <- campeon[-3]       # todos menos el 3

suma_pub_1 <- publico[4] + publico[5]
suma_pub_2 <- sum(publico[4], publico[5])
suma_pub_3 <- sum(publico[4:5])

suma_pub_1 == suma_pub_2
## [1] TRUE
suma_pub_2 == suma_pub_3
## [1] TRUE

8.2.1 8.2.1 ¡Atención con campeon[1,5]!

Para vectores se usa un solo índice. Es incorrecto usar dos índices [,] (eso es para matrices/data frames).

# Esto da error: "incorrect number of dimensions"
# prueba <- campeon[1,5]

Formas correctas de obtener los elementos 1 y 5 de un vector:

prueba_ok1 <- c(campeon[1], campeon[5])
prueba_ok2 <- campeon[c(1, 5)]   # equivalente y más simple
prueba_ok1; prueba_ok2
## [1] "Italia"    "Argentina"
## [1] "Italia"    "Argentina"

8.3 8.3 Indexación en data frames

prueba1 <- df[, 5]           # columna 5 completa
prueba2 <- df[, "penales"]   # por nombre
prueba3 <- df[1, 5]          # celda (fila 1, columna 5)
prueba4 <- df[1, "penales"]  # por nombre
prueba5 <- df[1, ]           # fila completa
list(prueba1 = prueba1, prueba2 = prueba2, prueba3 = prueba3, prueba4 = prueba4, fila1 = prueba5)
## $prueba1
## [1]  TRUE FALSE FALSE FALSE  TRUE
## 
## $prueba2
## [1]  TRUE FALSE FALSE FALSE  TRUE
## 
## $prueba3
## [1] TRUE
## 
## $prueba4
## [1] TRUE
## 
## $fila1
##       sede  año campeon publico penales
## 1 Alemania 2006  Italia   69000    TRUE

9 9. Mini‑ejercicios (para resolver en clase)

  1. Creá un vector con tus 5 números favoritos y calculá media, mediana y desviación estándar.
  2. Usando paste(), armá una frase combinando tres objetos de texto.
  3. Agregá un valor NA a un vector y comprobá la diferencia entre sum(x) y sum(x, na.rm=TRUE).
  4. En el data frame df, obtené el público promedio de los dos últimos mundiales.
  5. Construí un vector lógico indicando si publico es mayor que 80.000 y usalo para filtrar el vector campeon.
# Soluciones guía (ocultá echo=FALSE si querés que el alumno lo resuelva)
nums <- c(3, 7, 11, 13, 17)
mean(nums); median(nums); sd(nums)
## [1] 10.2
## [1] 11
## [1] 5.403702
frase <- paste("Hola", "mundo", "R")
frase
## [1] "Hola mundo R"
x <- c(10, 20, NA, 40)
sum(x); sum(x, na.rm = TRUE)
## [1] NA
## [1] 70
mean(tail(publico, 2))
## [1] 83483
campeon[publico > 80000]
## [1] "España"    "Argentina"

10 10. Publicar en RPubs

  1. En RStudio: Knit ▶️ Knit to HTML.
  2. Cuando se abra el HTML, presioná Publish (esquina superior derecha) → RPubs.
  3. Poné un título y descripción, iniciá sesión si es necesario, y confirmá.
  4. Copiá el enlace público para compartir con tus estudiantes.

Listo para RPubs. Si querés, puedo generar también una versión PPTX con los mismos ejemplos y capturas para usar en clase presencial.