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

vocales <- spanish_vowels %>%
  select(-f2)

separado <- separate(data = vocales, col = label,
                           into = c("participante", "sexo", "vocal"),
                     sep = "-")

ancho <- pivot_wider(separado, names_from = vocal, values_from = f1)
knitr::include_graphics(
  "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png"
  )

Datos: vocales

Este es un set de datos que contiene datos sobre la frecuencia del uso de las vocales en español de participantes un estudio en 1985. Contiene 750 observaciones y 4 variables.

glimpse(vocales)

Descripción de las variables:

| Variable | Descripcion | | :--------: | :-----------: | | label | Código del participante | | rep | Repetición | | f1 | Vector numérico indicando la vocal F1 en Hz |

Ejercicios:

Separe la columna label en participante, sexo y vocal

La variable label en el conjunto de datos vocales está compuesta por tres elementos distintos, por ejemplo: p01-male-a se puede separar en p01, male y a y así obtenemos un conjunto de datos más ordenado y fácil de utilizar. Separe esta columna en tres nuevas columnas: participante, sexo y vocal.


into = c("participante", "sexo", "vocal"), sep = "-"
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(separate(data = vocales, col = label,
                           into = c("participante", "sexo", "vocal"),
                           sep = "-"))),
          "¡Genial!")
)

Una las columnas participante, sexo y vocal en la columna original label

Anteriormente separamos la columna label de vocales en tres columnas distintas, esto quedó guardado en el set de datos separado. Ahora una estas tres columnas de forma que volvamos a la columna label original pero esta vez separelo con un "_".


sep = "_"
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(unite(separado,
                                   col="label", participante:vocal,
                                   sep = "_"))),
          "¡Bien hecho!")
)

Cree un set de datos ancho, donde cada vocal tenga su propia columna

Partiendo de separado, vea que este es un conjunto de datos muy largo ya que se repiten mucho las observaciones por participante, ahora, utilizando las herramientas de tidyr conviértalo en un set de datos ancho donde cada vocal represente una columna.


pivot_wider()
values_from = f1
grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(
                        pivot_wider(separado,
                                    names_from = vocal,
                                    values_from = f1))),
          "¡Excelente!")
)

Vuelva al set de datos original (separado)

En el ejercicio anterior creamos un conjunto de datos ancho el cuál quedó guardado como ancho, ahora utilizando alguna herramienta de tidyr, vuelva al conjunto original desde donde partimos: separado



grade_result(
  pass_if(~ identical(unlist(.result),
                      unlist(
                        pivot_wider(separado,
                                    names_from = vocal,
                                    values_from = f1))),
          "¡Bien!")
)


ixpantia/ixpantia.introR documentation built on Jan. 25, 2024, 2:32 p.m.