library(magrittr) # install.packages("magrittr")
# representar usando las funciones
(((12 * 5) - 11)/ 7) + 3
## [1] 10
add() subtract() multiply_by() divide_by()
add(divide_by(subtract(multiply_by(12, 5), 11), 7), 3)
## [1] 10
numero_inicial <- 12
resultado1 <- multiply_by(numero_inicial, 5)
resultado2 <- subtract(resultado1, 11)
resultado3 <- divide_by(resultado2, 7)
resultado_final <- add(resultado3, 3)
resultado_final
## [1] 10
numero <- 12
numero <- multiply_by(numero, 5)
numero <- subtract(numero, 11)
numero <- divide_by(numero, 7)
numero <- add(numero, 3)
numero
## [1] 10
(((12 * 5) - 11)/ 7) + 3
## [1] 10
numero <- 12
numero <- multiply_by(numero, 5)
numero <- subtract(numero, 11)
numero <- divide_by(numero, 7)
numero <- add(numero, 3)
numero
## [1] 10
12 %>%
multiply_by(5) %>%
subtract(11) %>%
divide_by(7) %>%
add(3)
## [1] 10
(((10 + 30) * 3) / 12) - 5
## [1] 5
10 %>%
add(30) %>%
multiply_by(3) %>%
divide_by(12) %>%
subtract(5)
## [1] 5
(((7 - 3) / -2) + 3) * 20
## [1] 20
7 %>%
subtract(3) %>%
divide_by(-2) %>%
add(3) %>%
multiply_by(20)
## [1] 20
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(readxl)
gapminder <- read_xlsx("data/gapminder.xlsx")
arrange(ungroup(summarise(group_by(mutate(select(filter(gapminder, year %in% c(1987, 2007)), continent, year, gdpPercap, pop), PBI_nacional = pop * gdpPercap), continent, year), promedio = mean(PBI_nacional))), year, desc(promedio))
## `summarise()` has grouped output by 'continent'. You can override using the `.groups` argument.
## # A tibble: 10 x 3
## continent year promedio
## <chr> <dbl> <dbl>
## 1 Americas 1987 439447790357.
## 2 Europe 1987 316507473546.
## 3 Asia 1987 241784763369.
## 4 Oceania 1987 209451563998.
## 5 Africa 1987 24107264108.
## 6 Americas 2007 776723426068.
## 7 Asia 2007 627513635079.
## 8 Europe 2007 493183311052.
## 9 Oceania 2007 403657044512.
## 10 Africa 2007 45778570846.
gapminder_modificado <- filter(gapminder, year %in% c(1987, 2007))
gapminder_modificado <- select(gapminder_modificado, continent, year, gdpPercap, pop)
gapminder_modificado <- mutate(gapminder_modificado, PBI_nacional = pop * gdpPercap)
gapminder_modificado <- group_by(gapminder_modificado, continent, year)
gapminder_modificado <- summarise(gapminder_modificado, promedio = mean(PBI_nacional))
## `summarise()` has grouped output by 'continent'. You can override using the `.groups` argument.
gapminder_modificado <- ungroup(gapminder_modificado)
gapminder_modificado <- arrange(gapminder_modificado, year, desc(promedio))
gapminder %>%
filter(year %in% c(1987, 2007)) %>%
select(continent, year, gdpPercap, pop) %>%
mutate(PBI_nacional = pop * gdpPercap) %>%
group_by(continent, year) %>%
summarise(promedio = mean(PBI_nacional)) %>%
ungroup() %>%
arrange(year, desc(promedio))
## `summarise()` has grouped output by 'continent'. You can override using the `.groups` argument.
## # A tibble: 10 x 3
## continent year promedio
## <chr> <dbl> <dbl>
## 1 Americas 1987 439447790357.
## 2 Europe 1987 316507473546.
## 3 Asia 1987 241784763369.
## 4 Oceania 1987 209451563998.
## 5 Africa 1987 24107264108.
## 6 Americas 2007 776723426068.
## 7 Asia 2007 627513635079.
## 8 Europe 2007 493183311052.
## 9 Oceania 2007 403657044512.
## 10 Africa 2007 45778570846.
Utilizando gapminder y las funciones de dplyr, obtén el ranking del PBI nacional de Perú, México, Colombia y Chile en los años 1967, 1987 y 2007.
Guíate de esta secuencia:
Esta parte se ha corregido respecto a las indicaciones originales
Usar gapminder Filtrar los datos de los cuatro países y los años seleccionados Seleccionar las variables pais, año, población y pbi per cápita Calcular el pbi total para cada observación Organizar por valor de año en forma ascendente y pbi total en orden descendente
gapminder %>%
filter(country %in% c("Peru", "Mexico", "Colombia", "Chile"),
year %in% c(1967, 1987, 2007)) %>%
select(country, pop, gdpPercap, year) %>%
mutate(pbi_total = pop * gdpPercap) %>%
arrange(year, desc(pbi_total))
## # A tibble: 12 x 5
## country pop gdpPercap year pbi_total
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Mexico 47995559 5755. 1967 2.76e11
## 2 Peru 12132200 5788. 1967 7.02e10
## 3 Colombia 19764027 2679. 1967 5.29e10
## 4 Chile 8858908 5107. 1967 4.52e10
## 5 Mexico 80122492 8688. 1987 6.96e11
## 6 Colombia 30964245 4903. 1987 1.52e11
## 7 Peru 20195924 6361. 1987 1.28e11
## 8 Chile 12463354 5547. 1987 6.91e10
## 9 Mexico 108700891 11978. 2007 1.30e12
## 10 Colombia 44227550 7007. 2007 3.10e11
## 11 Chile 16284741 13172. 2007 2.14e11
## 12 Peru 28674757 7409. 2007 2.12e11
¿Qué continentes tuvieron la mejor y peor expectativa de vida mediana en 1992?: La mejor fue Oceania con 76.945 y la peor fue Africa con 52.429
gapminder %>%
filter(year == 1992) %>%
select(continent, lifeExp) %>%
group_by(continent) %>%
summarise(mediana = median(lifeExp)) %>%
ungroup() %>%
arrange(desc(mediana))
## # A tibble: 5 x 2
## continent mediana
## <chr> <dbl>
## 1 Oceania 76.9
## 2 Europe 75.5
## 3 Americas 69.9
## 4 Asia 68.7
## 5 Africa 52.4
¿Qué continente tuvo el mayor porcentaje de países con expectativa de vida superior a la mediana mundial en 2007?: Oceanía y Europa
gapminder %>%
filter(year == 2007) %>%
mutate(mediana_mundial = median(lifeExp),
mayor_que_mediana = lifeExp > mediana_mundial) %>%
group_by(continent) %>%
summarise(n_paises = n(),
n_paises_mayor_que_mediana = sum(mayor_que_mediana)) %>%
ungroup() %>%
mutate(porcentaje_paises_mayores = n_paises_mayor_que_mediana/n_paises*100) %>%
arrange(desc(porcentaje_paises_mayores))
## # A tibble: 5 x 4
## continent n_paises n_paises_mayor_que_mediana porcentaje_paises_mayores
## <chr> <int> <int> <dbl>
## 1 Oceania 2 2 100
## 2 Europe 30 29 96.7
## 3 Americas 25 17 68
## 4 Asia 33 18 54.5
## 5 Africa 52 5 9.62
gapminder %>%
filter(year == 2007) %>%
mutate(mayor_que_mediana = lifeExp > median(lifeExp)) %>%
group_by(continent, mayor_que_mediana) %>%
summarise(n = n()) %>%
mutate(porcentaje = n/sum(n)*100) %>%
ungroup() %>%
filter(mayor_que_mediana)
## `summarise()` has grouped output by 'continent'. You can override using the `.groups` argument.
## # A tibble: 5 x 4
## continent mayor_que_mediana n porcentaje
## <chr> <lgl> <int> <dbl>
## 1 Africa TRUE 5 9.62
## 2 Americas TRUE 17 68
## 3 Asia TRUE 18 54.5
## 4 Europe TRUE 29 96.7
## 5 Oceania TRUE 2 100
Para estos ejercicios es importante tener presente las funciones que nos permiten obtener valores de resumen típicos para nuestros datos.
sum(): sumamean(): promediomediana(): medianamin(): mínimomax(): máximoEjecuta código que te permita responder a las siguientes preguntas (se agrega cómo quedaría la tabla final para que se den una idea):
## # A tibble: 5 x 2
## continent pbi_percap_promedio
## <chr> <dbl>
## 1 Oceania 20894.
## 2 Europe 17062.
## 3 Asia 8640.
## 4 Americas 8045.
## 5 Africa 2282.
## # A tibble: 5 x 2
## continent pbi_percap_mediano
## <chr> <dbl>
## 1 Africa 987.
## 2 Asia 1207.
## 3 Americas 3048.
## 4 Europe 5142.
## 5 Oceania 10298.
## # A tibble: 5 x 2
## continent pbi_promedio
## <chr> <dbl>
## 1 Americas 489899820623.
## 2 Europe 342703247405.
## 3 Asia 307100497486.
## 4 Oceania 236319179826.
## 5 Africa 26256977719.
## # A tibble: 2 x 4
## year lifeExp_mayor lifeExp_menor diferencia
## <dbl> <dbl> <dbl> <dbl>
## 1 1952 72.7 28.8 43.9
## 2 2007 82.6 39.6 43.0
## # A tibble: 1 x 3
## lifeExp_mayor_2007 lifeExp_mayor_1952 diferencia
## <dbl> <dbl> <dbl>
## 1 82.6 72.7 9.93