Merge pull request #137 from FelFT/main

Spanish translation for Explore and analyze data with R
This commit is contained in:
Abril Ureña 2022-08-29 15:05:41 -05:00 коммит произвёл GitHub
Родитель 63bb8fc8a7 1aa1d803d3
Коммит abdc882403
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
24 изменённых файлов: 1866 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,3 @@
In this folder, you can find translations of existing workshops in their corresponding folders.
- [Spanish](./es/README.md)

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,3 @@
{
"CurrentProjectSetting": null
}

Просмотреть файл

@ -0,0 +1,11 @@
{
"ExpandedNodes": [
"",
"\\.devcontainer",
"\\.devcontainer\\library-scripts",
"\\all-systems-check",
"\\tests"
],
"SelectedNode": "\\challenge-Data_Exploration.ipynb",
"PreviewInSolutionExplorer": false
}

Двоичные данные
full/explore-analyze-data-with-R/translations/es/.vs/slnx.sqlite Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,139 @@
# Exploración y análisis de datos con R
## Módulo de referencia
[Exploración y análisis de datos con R](https://docs.microsoft.com/es-es/learn/modules/explore-analyze-data-with-r/?WT.mc_id=academic-59300-cacaste)
## Objetivos
¡Hola! Te damos la bienvenida a esta aventura de aprendizaje. En esta carpeta, encontrarás un notebook de exploración de datos. ¡Es un notebook de evaluación guiada de calificación automática que te ayudará a probar tus conocimientos en R para explorar y analizar datos! Esperamos que puedas notar que R, es en esencia, un lenguaje hermoso y elegante para la Ciencia de Datos.
| **Objetivo** | Descripción |
| ----------------------------- | -----------------------------------------------|
| **¿Qué aprenderás?** | Aprenderás a cómo utilizar R para exploración y análisis de datos |
| **Lo qué necesitarás** | [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-59300-cacaste), [Docker Desktop](https://www.docker.com/products/docker-desktop), [Remote Developer Extension](https://aka.ms/vscode-remote/download/extension) y [Git](https://git-scm.com/downloads) |
| **Duración** | 2 horas |
| **Diapositivas** | [Powerpoint](./slides.pptx) |
## Video
¡Vídeo próximamente!
<!---
🎥 Haga clic en esta imagen para ver a Carlotta guiarlo a través del material del taller y para obtener algunos consejos sobre cómo impartir este mismo.
--->
## Pre-aprendizaje
Este taller nos permite aplicar las habilidades aprendidas en el módulo [Exploración y análisis de datos con R](https://docs.microsoft.com/es-es/learn/modules/explore-analyze-data-with-r/?WT.mc_id=academic-59300-cacaste) para realizar análisis y visualización de datos. Por lo tanto, se les invita a que finalicen el módulo de Microsoft Learn antes de comenzar este taller para familiarizarse con algunos de los conceptos que veremos más adelante.
## Requisitos previos
Para preparar, ejecutar y escribir código R en poco tiempo, hemos incluido en este taller un contenedor, de manera que tengas un entorno de programación de R listo para utilizar.
### Configuración del contenedor de desarrollo
Un **contenedor de desarrollo** es un contenedor de [Docker](https://www.docker.com) en ejecución que incluye herramientas y tiempos de ejecución bien definidos así como los requisitos previos. Puedes probar contenedores de desarrollo con **[GitHub Codespaces](https://github.com/features/codespaces)**, **[Binder](https://mybinder.org/)** o **[Visual Studio Code Remote - Containers](https://aka.ms/vscode-remote/containers)**.
#### GitHub Codespaces
Sigue estos pasos para abrir este taller en un Codespace:
1. Haz clic en el menú desplegable Código y selecciona la opción **Open with Codespaces** .
2. Selecciona **+ New codespace** en la parte inferior del panel.
Para más información, consulta la [documentación de GitHub](https://docs.github.com/en/free-pro-team@latest/github/developing-online-with-codespaces/creating-a-codespace#creating-a-codespace).
#### Binder
Este taller también está disponible en Binder. Para abrir el notebook en un entorno de Binder, haz clic en el botón que se encuentra a continuación.
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/carlotta94c/workshop-library/workshop-binding?labpath=%2Ffull%2Fexplore-analyze-data-with-R%2Fsolution%2Fchallenge-Data_Exploration.ipynb)
#### Espacio aislado de Aprendizaje
También puedes completar este desafío aprovechando el espacio asilado de Learn, que se encuentra en la [unidad 9](https://docs.microsoft.com/es-es/learn/modules/explore-analyze-data-with-r/9-challenge-data-exploration) del módulo de Microsoft Learn - Exploración y análisis de datos con R. Solo necesitas iniciar sesión con tu cuenta de Microsoft o GitHub y hacer clic en **Activar el espacio aislado** para iniciar.
#### Contenedores de VS Code Remotos
Sigue estos pasos para abrir este taller en un contenedor usando la extensión VS Code _Remote - Containers_:
1. Si es la primera vez que utilizas un contenedor de desarrollo, asegúrate de que tu sistema cumpla con los requisitos previos (por ejemplo, tener instalado Docker) en la [guía de inicio](https://aka.ms/vscode-remote/containers/getting-started).
2. Presiona <kbd>F1</kbd> y selecciona el comando **Add Development Container Configuration Files...** para **Remote-Containers** o **Codespaces**.
> **Nota:** Si es necesario, puedes arrastrar y soltar la carpeta `.devcontainer` desde esta subcarpeta en una copia clonada localmente de este repositorio en el explorador de archivos de VS Code en lugar de usar el comando.
3. Selecciona esta definición. También debes seleccionar **Show All Definitions...** para que aparezca.
4. Finalmente, presiona <kbd>F1</kbd> y ejecute **Remote-Containers: Reopen Folder in Container** para empezar a usar la definición.
Esta definición incluye un código de prueba que te ayudará a verificar que funciona correctamente en tu sistema. Abre la carpeta `all-systems-check` donde puede elegir ejecutar los scripts `.R`, `.Rmd` o `.ipynb`. Deberías ver "¡Hola, mundo remoto!" en una ventana de terminal R (para `.R` y `.Rmd`) o dentro de un Jupyter Notebook (para `.ipynb`) después de que se ejecute el script respectivo.
En algún momento, es posible que desees realizar cambios en tu contenedor, como por ejemplo, instalar un nuevo paquete. Deberás reconstruir tu contenedor para que los cambios surtan efecto.
## Lo que vas a aprender
Supongamos que el Departamento de Transporte está considerando construir un nuevo aeropuerto. Como el increíble científico de datos que eres, se te ha pedido que explores los datos existentes. Los resultados de su análisis pueden formar la base de un informe o un modo de aprendizaje automático.
En este desafío, explorarás un conjunto de datos del mundo real que contiene datos de vuelos del Departamento de Transporte de EE. UU.
## Paso 1: Limpieza de datos
Rara vez encontramos datos en la forma correcta para el análisis. Como tal, una vez que hayas importado tus datos, un buen lugar para comenzar su análisis es respondiendo a la pregunta: "_¿Son los datos precisos y apropiados para el análisis deseado?_". La limpieza de datos para resolver errores, valores faltantes y otros problemas vale la pena a largo plazo y permite un análisis exploratorio de datos más fácil y preciso.
En esta sección:
- Identificarás cualquier dato nulo o faltante e agregará valores de reemplazo apropiados.
- Identificarás y eliminará cualquier valor atípico en las columnas DepDelay y ArrDelay.
## Paso 2: Análisis exploratorio de datos (EDA)
El análisis exploratorio de datos, conocido popularmente como EDA, es utilizado por los científicos de datos para analizar e investigar conjuntos de datos y resumir sus características principales, por ejemplo, la distribución, a menudo visualizando y transformando datos.
En esta sección:
- Observarás las estadísticas de resumen para los campos numéricos en el conjunto de datos.
- Determinarás la distribución de las columnas DepDelay y ArrDelay.
### Más EDA
El objetivo de EDA es desarrollar una mejor comprensión de sus datos. La mayoría de las veces, EDA implicará formular algunas preguntas de sondeo sobre sus datos, buscar respuestas mediante la visualización y transformación de datos y, finalmente, utilizar la comprensión adquirida para refinar las preguntas, descartarlas por completo y/o generar nuevas preguntas.
En esta sección:
- Utilizarás estadísticas, funciones agregadas y visualizaciones para responder las siguientes preguntas:
- ¿Cuáles son los retrasos promedio (media) de salida y llegada?
- ¿Cómo se comparan los transportistas en términos de rendimiento de retrasos en la llegada?
- ¿Hay una diferencia notable en los retrasos de llegada para los diferentes días de la semana?
- ¿Qué aeropuerto de salida tiene el retraso medio de salida más alto?
- ¿Las salidas tardías tienden a resultar en retrasos de llegada más prolongados que las salidas a tiempo?
- ¿Qué ruta (del aeropuerto de origen al aeropuerto de destino) tiene más llegadas tardías?
- ¿Qué ruta tiene el promedio de retraso de llegada más alto?
## Prueba
Evalúa sus conocimientos con [una breve prueba](https://docs.microsoft.com/en-us/learn/modules/explore-analyze-data-with-r/8-knowledge-check).
## Próximos pasos
¡Felicidades por finalizar este reto 🏅!
Hay otros talleres sobre el uso de R para Ciencia de Datos. En este taller, aprendimos cómo limpiar, visualizar y transformar datos para obtener información. El siguiente conjunto de talleres te enseñará [cómo crear modelos de regresión](../../../intro-regression-R-tidymodels/), [cómo crear modelos de clasificación](../../../intro-classification-R-tidymodels/) y cómo crear modelos de agrupamiento (¡muy pronto!). ¡Asegúrate de echarles un vistazo!
## Práctica
En este taller utilizaste preguntas ya proporcionadas para guiar su EDA. A veces este no es el caso. Intenta generar tus propias preguntas y responderlas utilizando las habilidades de transformación y visualización de datos que had adquirido en este módulo. ¿Qué nueva información has obtenido?
## Agradecimientos ❤️
¡Muchísimas gracias a Felipe Flores (@FelFT) por haber traducido todo este contenido a español! 🚀 ✨
## Feedback
Asegúrate de dejarnos tus [comentarios sobre este taller](https://forms.office.com/r/MdhJWMZthR). ¡Feliz aprendizaje!
[Código de conducta](../../../../CODE_OF_CONDUCT.md)

Просмотреть файл

@ -0,0 +1,7 @@
# Función que devuelve un mensaje impresionante
say_hello <- function(name) {
message(paste0("Hola, ", name, ":) En este módulo, aprenderemos a explorar
y analizar datos con R."))
}
say_hello("mundo remoto")

Просмотреть файл

@ -0,0 +1,41 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"vscode": {
"languageId": "r"
}
},
"outputs": [],
"source": [
"# Función que devuelve un mensaje impresionante\n",
"say_hello <- function(name) {\n",
" message(paste0(\"Hola, \", name, \":) En este módulo, aprenderemos a explorar\n",
" y analizar datos con R.\"))\n",
"}\n",
"\n",
"say_hello(\"mundo remoto\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "R",
"language": "R",
"name": "ir"
},
"language_info": {
"codemirror_mode": "r",
"file_extension": ".r",
"mimetype": "text/x-r-source",
"name": "R",
"pygments_lexer": "r",
"version": "4.1.2"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}

Просмотреть файл

@ -0,0 +1,19 @@
// Coloque los enlaces de clave en este archivo para invalidar los valores predeterminados
// Métodos abreviados de teclado para operadores de R comunes
[
// Agregar operador de asignación
{
"key": "Alt+-",
"command": "type",
"args": { "text": " <- " }
//"when": "editorTextFocus && editorLangId == r"
},
// Agregar pipe
{
"key": "Ctrl+Shift+m",
"command": "type",
"args": { "text": " %>% " }
//"when": "editorTextFocus && editorLangId == r"
}

Просмотреть файл

@ -0,0 +1,25 @@
---
title: "R Notebook"
output: html_notebook
---
Este es un notebook [R Markdown](http://rmarkdown.rstudio.com). Cuando ejecuta código dentro del notebook, los resultados aparecen debajo del código.
Intente ejecutar este fragmento haciendo clic en el botón *Ejecutar* dentro del fragmento o colocando el cursor dentro de él y presionando *Ctrl+Shift+Enter*.
```{r}
plot(cars)
```
¿Quiere probar una función también?
```{r}
# Función que devuelve un mensaje impresionante
say_hello <- function(name) {
message(paste0("Hola, ", name, ":) En este módulo, aprenderemos a explorar
y analizar datos con R."))
}
say_hello("mundo remoto")
```

Двоичные данные
full/explore-analyze-data-with-R/translations/es/slides.pptx Normal file

Двоичный файл не отображается.

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,43 @@
test = list(
name = "Question 1",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "Excelente. Ha seleccionado correctamente las columnas **DepDelay** y **DepDel15** y, a continuación, ha filtrado el conjunto de datos para incluir solo filas en las que el valor de **DepDel15** es NA.",
failure_message = "¡Vaya! Vamos a intentarlo de nuevo. Asegúrate de haber seleccionado las columnas **DepDelay** y **DepDel15** y, a continuación, filtrado el conjunto de datos para incluir solo filas donde el valor de **DepDel15** es NA.",
code = {
suppressPackageStartupMessages({
library(testthat)
library(ottr)
})
## Test ##
test_that('the first column has no NA while the second has 2761 NAs', {
expect_equal(sum(is.na(flights_depdel$DepDelay)), 0)
expect_equal(sum(is.na(flights_depdel$DepDel15)), 2761)
})
}
),
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Fantástico! Sus dimensiones tibble también son correctas.",
failure_message = "¡Casi allí! Asegúrate de haber seleccionado las columnas **DepDelay** y **DepDel15** y, a continuación, filtra el conjunto de datos para incluir solo filas donde el valor de **DepDel15** es NA.",
code = {
suppressPackageStartupMessages({
library(testthat)
library(ottr)
})
## Test ##
test_that('data dimensions correct', {
expect_output(glimpse(flights_depdel), "Rows: 2,761\nColumns: 2")
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,46 @@
test = list(
name = "Question 10",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Ese es un gran comienzo! Ha codificado correctamente **DepDel15** como variable categórica.",
failure_message = "Casi allí. Asegúrate de haber modificado la columna **DepDel15** a una variable de factor/categoría.",
code = {
## Prueba ##
test_that('DepDel15 is a factor variable', {
expect_equal(class(df_flights$DepDel15), "factor")
})
}
),
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Gran trabajo! Ahora tienes un hermoso e informativo gráfico de diagrama de caja. Como puedes ver, los vuelos con una salida retrasada tienen un valor medio más alto para sus tiempos de retraso de llegada. De hecho, las salidas tardías tienden a dar lugar a retrasos de llegada más largos. ",
failure_message = "Vamos a intentarlo de nuevo. Asegúrate de haber asignado la estética x a **DepDel15**, y la estética a **ArrDelay** y la estética de relleno a **DepDel15**.",
code = {
## Prueba ##
test_that('plot has expected aesthetic mappings', {
expect_equal(class(arr_delay_plot$layers[[1]]$geom)[1], "GeomBoxplot")
expect_equal(arr_delay_plot$labels$x, "DepDel15")
expect_equal(arr_delay_plot$labels$y, "ArrDelay")
expect_equal(arr_delay_plot$labels$fill, "DepDel15")
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,42 @@
test = list(
name = "Question 11",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Ese es un gran comienzo! ¡Tus dimensiones tibble se ven geniales!",
failure_message = "Casi allí. Revisemos de nuevo las dimensiones de tibble. El tibble de salida debe tener las columnas **Route** y **ArrDelay**.",
code = {
## Test ##
test_that('summary tibble has correct dimensions', {
expect_output(glimpse(df_route_arrdelay), "Rows: 2,479\nColumns: 2", fixed = TRUE)
expect_equal(sort(names(df_route_arrdelay)), c("ArrDelay", "Route"))
})
}
),
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Fantástico! Ha agrupado _(grouped_by)_, resumido y organizado con éxito las observaciones en orden descendente de sus tiempos medios de retraso de llegada.",
failure_message = "Casi allí. Asegúrate de que el tibble esté dispuesto en orden descendente de su tiempo medio de retraso.",
code = {
## Test ##
test_that('summary tibble has correct values', {
expect_equal(slice(df_route_arrdelay, 1)$ArrDelay, 24.5)
expect_equal(slice(df_route_arrdelay, 2476)$Route, "Eppley Airfield>LaGuardia")
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,34 @@
test = list(
name = "Question 2",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Buen trabajo! No hay más valores faltantes en la columna DepDel15.",
failure_message = "¡Casi allí! Asegúrate de que has reemplazado los valores que faltan en la columna DepDel15 por un 0. Tal vez intenta experimentar con **mutate** y **replace_na**.",
code = {
## Test ##
test_that('data has no missing values', {
expect_false(anyNA(df_flights), FALSE)
})
}
),
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "Fantástico. Sus dimensiones tibble también son correctas.",
failure_message = "¡Casi allí! Asegurate de que está comenzando con tibble **df_flights** y luego reemplazó los valores que faltan en la columna **DepDel15** con un 0.",
code = {
## Test ##
test_that('data dimensions correct', {
expect_output(glimpse(df_flights), "Rows: 271,940")
expect_output(glimpse(df_flights), "Columns: 20")
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,37 @@
test = list(
name = "Question 3",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Fantástico! Ha seleccionado correctamente la columna **DepDelay**",
failure_message = "¡Casi allí! Asegúrate de haber seleccionado la columna **DepDelay**",
code = {
## Test ##
test_that('df_col corresponds to DepDelay', {
expect_equal(colnames(df_col), "DepDelay")
expect_output(glimpse(df_col), "Rows: 271,940\nColumns: 1")
})
}
),
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Sus estadísticas resumidas también se ven muy bien!",
failure_message = "¡Casi allí! Asegúrate de haber seleccionado la columna DepDelay para obtener las estadísticas de resumen deseadas.",
code = {
## Test ##
test_that('the distribution of DepDelay is correct', {
expect_equal(show_distribution(var_data = df_col, binwidth = 100)[[1]], "Minimum: -63.00\nMean: 10.35\nMedian: -1.00\nMode: -3.00\nMaximum: 1425.00")
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,38 @@
test = list(
name = "Question 4",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Fantástico! Has seleccionado correctamente la columna **ArrDelay**",
failure_message = "¡Casi allí! Asegúrate de haber seleccionado la columna **ArrDelay**",
code = {
## Test ##
test_that('df_col corresponds to ArrDelay', {
expect_equal(colnames(df_col), "ArrDelay")
expect_output(glimpse(df_col), "Rows: 271,940\nColumns: 1")
})
}
),
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Tus estadísticas resumidas también se ven muy bien!",
failure_message = "¡Casi allí! Asegúrate de haber seleccionado la columna ArrDelay para obtener las estadísticas de resumen deseadas.",
code = {
## Test ##
test_that('the distribution of ArrDelay is correct', {
expect_equal(show_distribution(var_data = df_col, binwidth = 100)[[1]], "Minimum: -75.00\nMean: 6.50\nMedian: -3.00\nMode: 0.00\nMaximum: 1440.00")
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,20 @@
test = list(
name = "Question 5",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 1.0,
success_message = "¡Bien hecho! Ha filtrado con éxito los datos para incluir observaciones cuyo retraso de llegada se encuentra dentro de los quantiles 1 y 90.",
failure_message = "¡Casi allí! Asegúrate de haber filtrado los datos **df_flights** para incluir solo filas en las que la entrada para la columna **ArrDelay** sea mayor que **arrdelay_01pcntile** y menor que **arrdelay_90pcntile**",
code = {
## Test ##
test_that('there are no outliers', {
expect_equal(sum(df_flights$ArrDelay < arrdelay_01pcntile), 0)
expect_equal(sum(df_flights$ArrDelay > arrdelay_90pcntile), 0)
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,20 @@
test = list(
name = "Question 6",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 1.0,
success_message = "¡Eso es todo! Tienes los valores correctos para los percentiles 1 y 90.",
failure_message = "¡Vamos a intentarlo de nuevo! Asegúrate de que tus _quantiles_ **DepDelay** correspondan a una probabilidad de 0,01 (1%) y 0,90 (90%)",
code = {
## Test ##
test_that('quantile values are correct', {
expect_equal(depdelay_01pcntile, -12)
expect_equal(depdelay_90pcntile, 17)
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,20 @@
test = list(
name = "Question 7",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 1.0,
success_message = "¡Bien hecho! Has filtrado con éxito los datos para incluir observaciones cuyo retraso de salida se encuentra dentro de los cuantiles 1 y 90.",
failure_message = "¡Casi allí! Asegúrate de haber filtrado los datos **df_flights** para incluir solo filas en las que la entrada de la columna **DepDelay** sea mayor que **depdelay_01pcntile** y menor que **depdelay_90pcntile**",
code = {
## Test ##
test_that('there are no outliers', {
expect_equal(sum(df_flights$DepDelay < depdelay_01pcntile), 0)
expect_equal(sum(df_flights$DepDelay > depdelay_90pcntile), 0)
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,21 @@
test = list(
name = "Question 8",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 1.0,
success_message = "¡Fantástico! Has encontrado con éxito el tiempo de atraso medio en las columnas **DepDelay** y **ArrDelay**.",
failure_message = "¡Vamos a intentarlo de nuevo! Asegúrate de que a partir de **df_flights** estas creando una tabla de resumen que contiene la media entre las columnas **DepDelay** y **ArrDelay**.",
code = {
## Test ##
test_that('summary tibble has correct values', {
expect_output(glimpse(df_delays), "Rows: 1\nColumns: 2", fixed = TRUE)
expect_equal(df_delays$DepDelay, -0.921692)
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,40 @@
test = list(
name = "Question 9",
cases = list(
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Ese es un gran comienzo! Ha codificado correctamente **DayOfWeek** como variable categórica.",
failure_message = "Casi allí. Asegúrate de haber modificado la columna **DayOfWeek** a una variable de factor/categoría.",
code = {
## Test ##
test_that('DayOfWeek is a factor variable', {
expect_equal(class(df_flights$DayOfWeek), "factor")
})
}
),
ottr::TestCase$new(
hidden = FALSE,
name = NA,
points = 0.5,
success_message = "¡Gran trabajo! Ahora tienes un hermoso gráfico de caja. Como puedes ver, no parece haber una gran variación de retraso de salida entre los diferentes días de la semana.",
failure_message = "Vamos a intentarlo de nuevo. Asegúrate de haber asignado la estética _x_ a **DayOfWeek** y la estética _y_ a **DepDelay**.",
code = {
## Test ##
test_that('plot has expected aesthetic mappings', {
expect_equal(dep_delay_plot$labels$x, "DayOfWeek")
expect_equal(dep_delay_plot$labels$y, "DepDelay")
})
}
)
)
)

Просмотреть файл

@ -0,0 +1,26 @@
# Exploración y análisis de datos con R
## Módulo de referencia
[Exploración y análisis de datos con R](https://docs.microsoft.com/es-es/learn/modules/explore-analyze-data-with-r/?WT.mc_id=academic-59300-cacaste)
## Etapa 1: Resultados esperados
1. Los estudiantes serán capaces de:
- Limpiar datos del mundo real
- Realizar análisis de datos exploratorios (EDA) a través de paquetes de R Tidyverse
2. Los estudiantes podrán utilizar su aprendizaje de forma independiente para:
- Generar preguntas por sí mismos para guiar un proceso de EDA
- Responder estas preguntas usando las habilidades de visualización y transformación de datos adquiridas en este módulo
## Etapa 2: Evidencia
- Desafío práctico como parte del módulo de aprendizaje, siguiendo el notebook [challenge-Data_Exploration.ipynb](./solution/challenge-Data_Exploration.ipynb)
- Prueba de conocimientos
## Etapa 3: Plan de aprendizaje
- Introducción
- Análisis exploratorio de datos
- Examinar datos del mundo real
- Desafío - Exploración de datos
- Prueba de conocimientos