library(learnr)
knitr::opts_chunk$set(echo = FALSE)
library(dplyr)
library(readr)
library(gradethis)
library(janitor)
tutorial_options(exercise.checker = gradethis::grade_learnr)

url <- "https://storage.googleapis.com/datos_cursos/peajes%20(1).xlsx"
temp <- tempfile(fileext = ".xlsx")
download.file(url, destfile = temp, mode = "wb")

peajes <- readxl::read_xlsx(temp) %>%
  clean_names() %>%
  mutate(x2016 = as.numeric(x2016),
         x2017 = as.numeric(x2017))
knitr::include_graphics(
  "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png"
  )  

Datos: peajes

Este conjunto de datos contiene información sobre peajes de Costa Rica. Consiste de 36 observaciones y 6 variables.

glimpse(peajes)

Descripción de las variables:

| Variable | Descripción | | :----------: | :--------------------------------: | | estacion_de_conteo | Nombre de la estación de peaje | | numero_de_ruta | Número de ruta en la que se encuentra el peaje | | ubicacion_de_la_estacion | Dirección donde se encuentra el peaje | | x2015 | Cantidad de dinero recolectado en el 2015 en ese peaje | | x2016 | Cantidad de dinero recolectado en el 2016 en ese peaje | | x2017 | Cantidad de dinero recolectado en el 2017 en ese peaje |

General

¿Qué tipo de objeto es "peajes"? (Responda la pregunta a través de código)


"class()"
grade_result(
  pass_if(~ identical(unlist(.result), unlist(class(peajes))),
          "¡Genial!")
)

¿Cuáles son los requisitos de datos ordenados (tidy data)?

question(
  "¿Cuáles son los requisitos de tidy data? (Marque todas las opciones correctas)",
  answer("Cada Variable debe de tener su propia columna", correct = TRUE),
  answer("Cada Observación debe de tener su propia fila", correct = TRUE),
  answer("Cada Variable debe tener su propia fila "),
  answer("Cada Valor debe de tener su propia celda", correct = TRUE),
  answer("Cada Valor debe tener varias celdas"),
  answer("Cada Observación debe tener su propia columna"),
  correct = "Correcto",
  incorrect = "Incorrecto")

Acceder valores

En este segmento vamos a trabajar con base R. Las respuestas serán evaluadas con código que sea con base R en lugar del tidyverse. Si querés practicar con el tidyverse recomendamos usar los tutoriales dinámicos de ixpantia a partir del tercero.

Obtenga la quinta fila del data frame "peajes"

En el set de datos peajes hay 36 filas, ahora obtenga la información de la quinta fila solamente.


"[]"
grade_result(
  pass_if(~ identical(unlist(.result), unlist(peajes[5,])),
          "¡Buenísimo!")
)

Obtenga los peajes de la ruta 27

En el set de datos hay una columna llamada numero_de_ruta que indica el número de carretera en la que se encuentra cada peaje. Obtenga la información referente a aquellos peajes que se encuentran únicamente en la ruta 27.


"subset()"
grade_result(
  pass_if(~ identical(unlist(.result), 
                      unlist(subset(peajes, numero_de_ruta == "27"))),
          "¡Genial!")
)

Obtenga los peajes que en el 2015 recogieron más de 16000

En el set de datos hay una columna que se llama x2015 que contiene los montos recolectados por cada peaje en este año. Ahora obtenga aquellos peajes que en este año recolectaron más de 16000.


">="
`x2015`
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(subset(peajes, `x2015` >= 16000))),
          "¡Excelente!")
)

Subset con peajes que en el 2016 recogieran más de 14000 y menos de 38000

En el conjunto de datos hay una columna que se llama x2016 que contiene los montos recolectados por cada peaje en este año. Obtenga aquellos peajes que ese año recolectaron más de 14000 pero menos de 38000.


"& funciona como 'y'"
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(
                        subset(peajes,
                               peajes$`x2016` > 14000 & peajes$`x2016` < 38000)
                        )),
          "¡Muy bien!")
)

Generar nueva columna que contenga la suma de lo recogido en los 3 años

En el set de datos hay tres columnas referentes a los montos recolectados en los peajes en tres años distintos, estas son x2015, x2016 y x2017. Ahora cree una nueva columna que contenga la suma de los montos recolectados en estos años para cada peaje. Llame a esa columna suma


peajes$suma
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(
                        peajes$suma <- peajes$`x2015` + peajes$`x2016` + peajes$`x2017`)),
          "¡Bien hecho!")
)


ixpantia/introR documentation built on Jan. 28, 2024, 8:03 a.m.