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" )
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) |
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!")
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!") )
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!") )
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!") )
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!") )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.