knitr::opts_chunk$set(echo = FALSE) library(learnr) library(dplyr) library(gradethis) library(datasets) tutorial_options(exercise.checker = gradethis::grade_learnr) regiones <- data.frame(id = c(254, 369, 147, 852), region = c("NORTE", "SUR", "NORTE", "ESTE"), valor = c(2500, 3700, 4200, 1200), tipo = c("A", "A", "C", "B")) ahorro_paises <- LifeCycleSavings %>% mutate(pais = row.names(LifeCycleSavings))
knitr::include_graphics( "https://storage.googleapis.com/datos_cursos/ixpantia_introR/ixpantia_logo.png" )
Este es un conjunto de datos donde cada observación corresponde a una región. Posee 4 observaciones (filas) y 4 variables (columnas).
glimpse(regiones)
Descripción de las columnas:
| Variable | Descripción |
|:----------:|:--------------------------------:|
| id
| identificación de la región |
| region
| punto cardinal de la región |
| valor
| monto recolectado en la región |
| tipo
| A,B o C |
El conjunto de datos regiones tiene 4 filas, ahora obtenga los datos que se encuentran en la tercera fila, incluyendo todas las columnas.
regiones
"[]"
regiones[3,]
grade_code("¡Muy bien!")
El conjunto de datos tiene 4 columnas, ahora obtenga la información de la cuarta columna, incluyendo todas las filas.
regiones
"[]"
regiones[ , 2]
grade_code("¡Muy bien!")
En el conjunto de datos hay una columna llamada region
que se refiere al punto
cardinal al que pertenece la región: NORTE, SUR, ESTE u OESTE. Ahora obtenga la
información referente a aquellas regiones que pertenezcan a la región NORTE
solamente.
"subset()"
grade_result( pass_if(~ identical(unlist(.result), unlist(subset(regiones, region == "NORTE"))), "¡Muy bien!") )
En el set de datos hay una columna llamada valor
, donde se encuentra el monto
recolectado en cada región. Ahora obtenga la información referente a las
regiones que tienen montos recolectados mayores de 3000.
"subset()"
grade_result( pass_if(~ identical(unlist(.result), unlist(subset(regiones, valor > 3000))), "Excelente!") )
En el set de datos hay una variable llamada tipo
, que describe si la región
es tipo A, B o C. Ahora obtenga la información referente a aquellas regiones
que NO son de tipo B, es decir, A o C.
regiones
"!="
grade_result( pass_if(~ identical(unlist(.result), unlist(subset(regiones, tipo != "B"))), "¡Buenísimo!") )
Este conjunto de datos contiene información sobre el ciclo de vida de los ahorros de 50 paises. Está inspirado en la hipótesis de Franco Modigliani sobre la razón de ahorro: que puede ser explicada por el ingreso disponible per capita, el porcentaje de cambio en el ingreso disponible per capita, el porcentaje de población con menos de 15 años y el porcentaje de población con más de 75 años. Los datos fueron recolectados en la década 1960-1970.
glimpse(ahorro_paises)
Descripción de las variables:
| Variable | Descripción |
| :----------: | :--------------------------------: |
| sr
| razón de ahorros (savings ratio) |
| pop15
| % de población con menos de 15 años |
| pop75
| % de población con más de 75 años |
| dpi
| ingreso disponible per cápita |
| ddpi
| % de cambio del ingreso disponible per cápita |
En el set de datos hay una variable llamada dpi
, obtenga la media o el
promedio de esta.
ahorro_paises$dpi
"mean()"
grade_result( pass_if(~ identical(unlist(.result), unlist(mean(ahorro_paises$dpi))), "¡Genial!") )
En el conjunto de datos hay una variable que representa el porcentaje de población que es menor de 15 años, descubra cuál país tiene un mayor porcentaje de esta población.
ahorro_paises$pop15
"max()"
grade_result( pass_if(~ identical(unlist(.result), unlist(max(ahorro_paises$pop15))), "¡Buenísimo!") )
En el set de datos hay una variable que representa el porcentaje de población que es mayor de 75 años, descubra cuál país tiene un menor porcentaje de esta población.
"min()"
grade_result( pass_if(~ identical(unlist(.result), unlist(min(ahorro_paises$pop75))), "¡Bien!") )
En el set de datos hay una variable que se llama dpi
, que representa el
ingreso disponible per cápita, ahora cambie el nombre de esta variable a
diposable_income
.
ahorro_paises$dpi
"colnames()"
grade_result( pass_if(~ identical(unlist(.result), unlist( colnames(ahorro_paises)[4] <- "disposable_income")), "¡Muy bien!") )
En el mundo de los datos se menciona que no es recomendable hacer subsets por posición, es decir, basándose en la posición de la variable por la que quiero filtrar la base, ¿porqué no se recomienda hacerlo?
question("¿Por qué no es recomendable hacer subsets por posición?", answer("Porque se ve feo"), answer("Porque no va con el estilo de código recomendado"), answer("Porque los datos pueden cambiar en el futuro y la posición de lo que buscabamos puede cambiar", correct = TRUE), answer("Opcion al escribirlo me puedo equivocar y poner la posición que no es"), incorrect = "Incorrecto", correct = "Correcto")
En el set de datos hay una variable llamada pop15
, el porcentaje de población
menor de 15 años y otra denominada pop75
, el porcentaje de población mayor a
75 años, ahora cree una nueva columna que sume, para cada país, estos dos
porcentajes. Llame a esta nueva columna "suma".
"ahorro_paises$suma"
grade_result( pass_if(~ identical(unlist(.result), unlist( ahorro_paises$suma <- ahorro_paises$pop15 + ahorro_paises$pop75 )), "¡Excelente!") )
El set de datos incluye información de 50 países, cada uno con un porcentaje de
población menor de 15 años (pop15
) y un porcentaje de población mayor 75 años
(pop75
). Ahora obtenga un subconjunto donde solo se encuentren los países en
los que pop15
sea menor a 23% o pop75
mayor a 47%.
subset
"| es 'ó'"
grade_result( pass_if(~ identical(unlist(.result), unlist(subset(ahorro_paises, ahorro_paises$pop15 < 23 | ahorro_paises$pop75 > 47))), "Bien hecho!") )
El set de datos contiene información de 50 países, cada uno con un porcentaje
de población mayor de 75 años (pop75
). Ahora obtenga un subconjunto que solo
contenga los 6 países con mayor porcentaje de población mayor a 75 años.
"usa arrange u order"
grade_result( pass_if(~ identical(unlist(.result), unlist( ahorro_paises %>% slice_max(pop75, n = 6) %>% arrange(desc(pop75)))), "Bien hecho!"), pass_if(~ identical(unlist(.result), unlist( ahorro_paises[order(ahorro_paises$pop75, decreasing = TRUE)[1:6],])), "¡Bien hecho!") )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.