Unidad 1 - Taller 3: R desde cero

Taller práctico evaluable · Semana 3 · 06327-ECO

Autor/a

PhD. Eduard F. Martínez-González

1 Instrucciones generales

Cómo funciona este taller

  • Es individual y evaluable, y se desarrolla en el tiempo restante de la clase (⏱️ diseñado para ≈ 55 minutos).
  • La entrega solo es válida si asististe a la clase en la que se desarrolla el taller: el taller se resuelve y se entrega en clase. Lo único que se entrega es este taller — la práctica no se entrega: es para trabajarla durante la clase.
  • 🤖 Declaración de uso de IA: es obligatoria al final de la entrega (incluso si dice “no usé IA”). Omitirla descuenta -0.5, y la penalización puede aumentar en caso de reincidencia.
  • Se resuelve sin la guía del profesor: todo lo que necesitas está en este documento, en la práctica y en la teoría de la semana. Durante el taller el profesor solo atiende dudas logísticas (entrega, plataforma), no de contenido.
  • Herramienta: RStudio (el de tu computador o posit.cloud).

El entregable es un solo archivo: un script de R.

  • 📄 Nombre del archivo: apellido_nombre_taller3.R
  • 🧾 Cada punto va precedido por su comentario numerado (## Punto 1a, ## Punto 1b…) y las respuestas en palabras (cuando se pidan) van como comentarios, escritas por ti.
  • 📤 Entrega: en el espacio habilitado en Intu antes de terminar la clase.
Advertencia

Reglas de juego (leelas: la rúbrica las aplica)

  1. El script debe correr completo, de arriba a abajo, sin errores. Así se revisará (con Source). Si se detiene en un error, se califica solo hasta esa línea. Antes de entregar, aplica la prueba de fuego de la práctica: rm(list = ls()) en la consola y luego Source — si termina sin errores, estás a salvo.
  2. Las respuestas en comentarios las escribes tú, con tus palabras. Una línea honesta vale más que un párrafo de enciclopedia.
  3. Uso de IA: permitido solo para explicar errores o conceptos después de intentarlo tú primero (para eso construiste tu skill la semana pasada). No está permitido pedirle la solución de un punto. Al final del script va la declaración de uso — es obligatoria, incluso si dice “no usé IA”.

Distribuye tu tiempo: Punto 0 ≈ 5 min · Punto 1 ≈ 10 min · Punto 2 ≈ 15 min · Punto 3 ≈ 15 min · Punto 4 ≈ 10 min.

2 Punto 0 — Proyecto y encabezado (0.5 puntos)

Trabaja dentro del proyecto intro_ba que creaste en la práctica (si no existe, créalo ahora: File → New Project, con las carpetas data, scripts, output).

  1. Crea un script nuevo y guárdalo en scripts/ con el nombre apellido_nombre_taller3.R.
  2. Escribe un encabezado de comentarios con: nombre completo, código, fecha y una línea que diga qué hace el script.
  3. Ejecuta getwd() y pega el resultado como comentario debajo (así verificamos que trabajaste dentro del proyecto).

Tu script debe empezar más o menos así:

## ============================================
## Taller 3 — R desde cero
## Nombre: ______________  Código: ___________
## Fecha: ______________
## Qué hace: resuelve el taller 3 del curso 06327
## ============================================

## Punto 0c
getwd()
# Resultado: "________________________________"

3 Punto 1 — Calculadora con propósito (1.0 punto)

  1. Escribe cuatro operaciones distintas — una suma, una resta, una multiplicación y una división — cuyo resultado sea exactamente 2026. Una operación por línea.

  2. Una tienda vende un producto cuyo precio de lista es $120.000. Hoy tiene descuento del 25%, y sobre el precio ya descontado se aplica IVA del 19%. Calcula el precio final que paga el cliente en una sola línea (vas a necesitar paréntesis y el orden correcto de las operaciones).

  3. En otra línea, responde con un lógico (TRUE/FALSE): ¿el precio final quedó por debajo de $110.000? Debajo, en un comentario de una línea, explica por qué el resultado es el que es.

4 Punto 2 — Vectores: los pedidos del restaurante (1.5 puntos)

Un restaurante registró sus pedidos diarios durante 10 días. Copia este vector en tu script:

## Punto 2 — datos
pedidos <- c(52, 61, 48, 75, 80, 66, 58, 90, 71, 63)

Responde cada literal con una línea de código (y el comentario que se pida):

  1. ¿Cuántos pedidos se recibieron en total y cuál fue el promedio diario? (dos líneas)
  2. ¿En qué posición (día) se registró el máximo de pedidos?
  3. ¿Cuántos días estuvieron por debajo de 60 pedidos?
  4. Muestra únicamente los tres últimos días usando indexación por posición.
  5. El administrador avisa que el dato del día 3 estaba mal digitado: fueron 68 pedidos, no 48. Corrige ese valor usando indexación (no reescribas todo el vector) y recalcula el promedio.
  6. Con el dato corregido: ¿cuántos días superaron el promedio nuevo? En un comentario de una línea: ¿ese número te parece mucho o poco para un negocio estable, y por qué?

5 Punto 3 — Data frame: el equipo comercial (1.5 puntos)

La gerente comercial te pasa los resultados de su equipo en el trimestre. Copia la tabla:

## Punto 3 — datos
equipo <- data.frame(
  vendedor = c("Rojas", "Díaz", "Mena", "Lara", "Soto", "Cruz"),
  zona     = c("Norte", "Sur", "Norte", "Centro", "Sur", "Centro"),
  ventas   = c(42, 35, 51, 28, 46, 39),      # millones de pesos
  clientes = c(14, 10, 17, 9, 20, 13)        # clientes atendidos
)
  1. Radiografía: aplica str() y dim(). En un comentario, indica cuántas observaciones y variables tiene la tabla, y de qué tipo es cada columna.
  2. Calcula el promedio de ventas del equipo usando el operador $.
  3. Muestra únicamente los vendedores de la zona Sur (filtro por condición con [ , ]).
  4. Crea la columna ventas_por_cliente (= ventas / clientes) — el indicador de eficiencia del equipo.
  5. Con una línea por pregunta: ¿qué vendedor tiene las mayores ventas totales? ¿Y cuál es el más eficiente (mayor ventas_por_cliente)? (Pista: en la práctica usaste which.max() con corchetes para algo muy parecido.)
  6. En un comentario de 1-2 líneas escrito por ti: los literales (e) dan dos nombres distintos. Si solo pudieras premiar a uno, ¿a cuál y por qué?

6 Punto 4 — Detective de errores (0.5 puntos)

Las siguientes tres líneas están dañadas. Cópialas a tu script como comentarios (tal cual, con su #), y debajo de cada una escribe (1) la versión corregida que sí corre y (2) un comentario de una línea explicando qué estaba mal.

## Punto 4 — corrige el crimen

# Línea dañada 1:
# promedio <- mean(c(10, 20, 30)

# Línea dañada 2:
# ventas totales <- 5000

# Línea dañada 3:
# resultado <- "500" * 2

⚠️ Recuerda la regla 1: las líneas dañadas deben quedar comentadas en tu entrega — si las dejas activas, tu script no correrá completo y la nota se detiene ahí con ellas.

7 Rúbrica de evaluación

El script que no corre completo se evalúa hasta la línea del primer error. La presentación (encabezado, puntos numerados, comentarios legibles) se descuenta hasta -0.3 si dificulta la revisión. Omitir la declaración de uso de IA al final descuenta -0.5, y la penalización puede aumentar en caso de reincidencia.
Punto Qué se evalúa Puntos
0. Proyecto y encabezado Script en scripts/ con nombre correcto; encabezado completo; getwd() pegado que evidencia el proyecto 0.5
1. Calculadora Las 4 operaciones dan 2026 (0.4); precio final en una línea con paréntesis correctos (0.4); lógico + explicación propia (0.2) 1.0
2. Vectores Total y promedio (0.3); posición del máximo (0.2); conteo con condición (0.3); indexación de los últimos 3 días (0.2); corrección por indexación + nuevo promedio (0.3); conteo final + comentario propio (0.2) 1.5
3. Data frame Radiografía + lectura correcta de str() (0.3); promedio con $ (0.2); filtro zona Sur (0.3); columna nueva (0.3); las dos preguntas con código (0.2); reflexión propia sobre ventas vs. eficiencia (0.2) 1.5
4. Detective de errores Cada línea corregida y con diagnóstico correcto (3 × 0.17, aprox.) 0.5
Total 5.0

8 Declaración de uso de IA

Advertencia

Esta declaración es obligatoria y cuenta en la nota: omitirla descuenta -0.5 en el taller, y la penalización puede aumentar en caso de reincidencia.

Cierra tu script con este bloque de comentarios diligenciado (obligatorio, aunque sea para decir que no la usaste):

## ============================================
## DECLARACIÓN DE USO DE IA
## Herramienta y modelo usados: _______________ (o "No usé IA")
## La usé para: _______________________________
## Verifiqué por mi cuenta: ____________________
## ============================================

Recuerda la política del curso: la IA es bienvenida para entender (explicar un error, aclarar un concepto), no para resolver por ti. En este taller la diferencia se nota: quien copia soluciones no sobrevive el parcial de la semana 7.