library(learnr) knitr::opts_chunk$set(echo = FALSE) library(readr) library(tidyr) library(dplyr) library(googledrive) library(googlesheets4) library(lubridate) library(httr) library(gradethis) tutorial_options(exercise.checker = gradethis::grade_learnr) temp = tempfile(fileext = ".xlsx") dataURL <- "https://storage.googleapis.com/datos_cursos/Planilla%20presidencia.xlsx" download.file(dataURL, destfile = temp, mode = 'wb') planilla <- readxl::read_excel(temp) planilla2 <- planilla %>% mutate(fecha = dmy_hms(planilla$FechaPago)) %>% select(Nombre, Cedula, Institucion, Rubro, Monto, fecha) separados <- pivot_wider(data = planilla, names_from = Rubro, values_from = Monto) temp2 <- tempfile(fileext = ".xlsx") dataURL2 <- "https://storage.googleapis.com/datos_cursos/planillaNAs.xlsx" download.file(dataURL2, destfile = temp2, mode = 'wb') planillaNAs <- readxl::read_excel(temp2) fecha_separada <- separate(data = planilla2, col = fecha,into = c("anio", "mes", "dia"), sep = "-")
knitr::include_graphics( "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png" )
Este set de datos incluye información sobre los trabajadores de Presidencia Costa Rica en el segundo cuatrimestre del 2019. Contiene 6 variables o columnas y 230 observaciones.
glimpse(planilla)
Descripción de las variables
| Variable | Descripcion |
| :--------: | :-----------: |
| Nombre
| Nommbre del empleado |
| Cedula
| Cedula del empleado |
| Institucion
| Institucion en la que trabaja el empleado, en este caso Presidencia |
| FechaPago
| Fecha y hora de realizacion del pago |
| Rubro
| Rubro especifico de pago |
| Monto
| Monto girado al empleado |
Nombre
El set de datos incluye varias observaciones para el mismo trabajador ya que el
pago de cada trabajador se puede dividir en varios rubros. Utilice pivot_wider
de tal forma que cree una columna para cada rubro o tipo de pago.
pivot_wider()
"values_from = Monto"
grade_result( pass_if(~ identical(unlist(.result), unlist(pivot_wider(data = planilla, names_from = Rubro, values_from = Monto))), "¡Muy bien!") )
En el paso anterior creamos una base de datos donde se creo una columna para
cada rubro de pago, este set de datos se llama separados. Ahora utilice
pivot_longer()
para volver al set de datos original. En la pista puede
encontrar los nombres de las columnas escritos para facilitarle la escritura
del código.
pivot_longer(data = separados, )
cols = c("CARRERA PROFESIONAL", "DISCRECIONALIDAD Y CONFIDENCIALIDAD COL 108", "DEDICACION EXCLUSIVA", "SALARIO BASE", "AUMENTOS ANUALES", "HORAS EXTRA-P.Adeudados", "PROHIBICION", "SOBREPAGO POR ASIGNACION", "SUBSIDIO ENFERMEDAD REG SERV CIVIL", "SUBSIDIO ENFERMEDAD NO REG SERV CIVIL")
"values_to = Monto"
grade_result( pass_if(~ identical(unlist(unname(.result)), unlist(unname( pivot_longer( data = separados, cols = c("CARRERA PROFESIONAL", "DISCRECIONALIDAD Y CONFIDENCIALIDAD COL 108", "DEDICACION EXCLUSIVA", "SALARIO BASE", "AUMENTOS ANUALES", "HORAS EXTRA-P.Adeudados", "PROHIBICION", "SOBREPAGO POR ASIGNACION", "SUBSIDIO ENFERMEDAD REG SERV CIVIL", "SUBSIDIO ENFERMEDAD NO REG SERV CIVIL"), names_to = "Rubro", values_to = "Monto")))), "¡Excelente!") )
Este set de datos es similar al visto anteriormente, solo que le faltan algunos datos, por lo que tiene NAs en distintas columnas.
glimpse(planillaNAs)
El set de datos planillaNAs tiene valores faltantes (NAs) en varias columnas,
en este ejercicio debes reeplazar los valores faltantes de las variable Monto
y Cedula
fill()
"Solo debes agregar una palabra al código que vimos antes"
grade_result( pass_if(~ identical(unlist(.result), unlist(fill(planillaNAs, Monto, Cedula))), "¡Bien!") )
Los valores faltantes del set de datos están identificados con un "NA", pero esto puede complicar las cosas en algunos procesos. Cambie los "NAs" por 99.
replace_na()
"list(valor = 99)"
grade_result( pass_if(~ identical(unlist(.result), unlist(replace_na(planillaNAs, list(valor = 99)))), "¡Buenísimo!") )
Este set de datos es similar a planilla2 con la excepcion que en lugar de la
columna FechaPago
tiene l columna fecha
que solo contiene la fecha del
pago, no la hora.
glimpse(planilla2)
El set de datos contiene una columna llamada fecha
, la cual representa la
fecha completa al momento del pago. Ahora utilice la funcion separate()
para
separar esta variable en tres columnas distintas, año, mes y dia.
separate(data = planilla2, )
sep = "-"
grade_result( pass_if(~ identical(unlist(.result), unlist(separate(data = planilla2, col = fecha, into = c("anio", "mes", "dia"), sep = "-"))), "¡Genial!") )
Anteriormente separamos la fecha en año, mes y dia. Este set de datos quedó
guardado como fecha_separada. Ahora utilice la función unite()
para unir
la fecha en una sola columna, como estaba anteriormente.
unite(data = fecha_separada, )
sep = "/"
grade_result( pass_if(~ identical(unlist(.result), unlist(unite(data = fecha_separada, col = "FechaPago", anio:dia, sep = "/"))), "¡Muy bien!") )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.