library(learnr)
library(gradethis)
library(tidyr)
library(untidydata)
library(dplyr)
library(here)

spirantization <- spirantization %>% 
  select(-cIntensity)

separado <- separate(spirantization, id,
                     into = c("participante", "numero"),
                     sep = "_")

ancho <- spread(separado, key = participante, value = vIntensity)

knitr::opts_chunk$set(echo = FALSE)
tutorial_options(exercise.checker = gradethis::grade_learnr)
knitr::include_graphics(
  "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png"
  )  

Datos: spirantization

Este conjunto de datos proviene del paquete untidydata y contiene información sobre datos simulado que contiene medidas de intensidad de una palabra inicial para dos grupos de estudiantes y hablantes nativos de español.

glimpse(spirantization)

Descripcion de las variables

| Variable | Descripcion | | :--------: | :-----------: | | id | Identificación del participante y repetición | | position | Posición de la inicial intervocálica | | vIntensity | Intensidad de la siguiente vocal (en dB) |

Ejercicios

¿Cuál es el problema del conjunto de datos?

El set de datos que vamos a utilizar no cumple con las características de la tidy data, ¿por qué?

question("¿Cuál es el problema del conjunto de datos?",
  answer("Las variables no están bien identificadas"),
  answer("No todas las columnas identifican una sola variable", correct = TRUE),
  answer("Las variables tienen nombres incorrectos"),
  answer("Los números son muy largos"),
  incorrect = "Incorrecto",
  correct = "Correcto!")

Separe la columa id en dos columnas distintas: paricipante y numero

La columna id en spirantization identifica dos variables distintas, por lo que es necesario separarla en dos. Usando una herramienta de tidyr, separe esta columna.


'into = c("participante", "numero"), sep = "_")'
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(separate(spirantization, id,
                                      into = c("participante", "numero"),
                                      sep = "_"))),
          "¡Buenísimo!")
)

Cree un nuevo conjunto de datos que cree una columna para cada participante

En el ejercicio anterior separamos la columna id de spirantization, esto quedó guardado en un nuevo set de datos llamado separado. Sin embargo, es un set de datos largo, ahora debe convertirlo en un set ancho, donde cada participante represente una columna.


"key = participante"
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(spread(
                        separado, key = participante,
                        value = vIntensity))),
          "¡Excelente!")
)

Regrese al set de datos original partiendo desde el set de datos ancho

En el ejercicio anterior creamo un set de datos ancho donde cada participante representaba una columna, este nuevo set se llama ancho. Partiendo de este nuevo set, regrese al conjunto de datos original.


"value = vIntensity"
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(gather(
                        ancho, participante,
                        value = vIntensity,
                        adv:nat))),
          "¡Genial!")
)

Una las columnas participante y numero para volver a la columna original id

En el primer ejercicio separamos la columna id en dos columnas nuevas: participante y numero para tener un set de datos más ordenado. Sin embargo, a veces queremos volver a la variable original para hacer algún análisis. Ahora debe unir estas dos columnas nuevas para lograr llegar a la columna original pero esta vez use un "/" para separar los valores de las columnas.


"sep = "/""
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(unite(
                        data = separado,
                        col = id,
                        participante,
                        numero,
                        sep = "/"))),
          "¡Muy bien!")
)


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