Está en la página 1de 13

Tidyverse: R packages for data science

Ejercicios 1. Manipulación de datos en R (dplyr)

José Yizreel Félix Jáquez-FQ8578

4/11/2021

La siguiente lista de ejercicios utiliza la base gapminder, de la libreria gapminder. Debajo de cada enunciado
se muestran los resultados esperados.
# install.packages("gapminder")
suppressWarnings(library (gapminder))
suppressWarnings(library (dplyr,warn.conflicts = FALSE))#Me gedia los mensajes de warning,
#eso no pega en mi trabajo
head(gapminder)

## # A tibble: 6 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Afghanistan Asia 1952 28.8 8425333 779.
## 2 Afghanistan Asia 1957 30.3 9240934 821.
## 3 Afghanistan Asia 1962 32.0 10267083 853.
## 4 Afghanistan Asia 1967 34.0 11537966 836.
## 5 Afghanistan Asia 1972 36.1 13079460 740.
## 6 Afghanistan Asia 1977 38.4 14880372 786.
str(gapminder)

## tibble[,6] [1,704 x 6] (S3: tbl_df/tbl/data.frame)


## $ country : Factor w/ 142 levels "Afghanistan",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ continent: Factor w/ 5 levels "Africa","Americas",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ year : int [1:1704] 1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 ...
## $ lifeExp : num [1:1704] 28.8 30.3 32 34 36.1 ...
## $ pop : int [1:1704] 8425333 9240934 10267083 11537966 13079460 14880372 12881816 13867957 1631
## $ gdpPercap: num [1:1704] 779 821 853 836 740 ...
# Contabilizar las categorais disponibles
nlevels(gapminder$country)

## [1] 142

1. Realizar una consulta con los datos correspondientes a la República Dominicana. Donde
no se muestre ni la variable country ni continent.

if (require("dplyr")) {
gapminder %>%
filter(country== "Dominican Republic") %>%
select(-country,-continent)
}

1
## # A tibble: 12 x 4
## year lifeExp pop gdpPercap
## <int> <dbl> <int> <dbl>
## 1 1952 45.9 2491346 1398.
## 2 1957 49.8 2923186 1544.
## 3 1962 53.5 3453434 1662.
## 4 1967 56.8 4049146 1654.
## 5 1972 59.6 4671329 2190.
## 6 1977 61.8 5302800 2682.
## 7 1982 63.7 5968349 2861.
## 8 1987 66.0 6655297 2900.
## 9 1992 68.5 7351181 3044.
## 10 1997 70.0 7992357 3614.
## 11 2002 70.8 8650322 4564.
## 12 2007 72.2 9319622 6025.
1.1. Obtenga los datos en la Rep. Dom. para los años posteriores a la decada de los 80’s.
if (require("dplyr")) {
gapminder %>%
filter(country== "Dominican Republic", year>= 1990) %>%
select(everything(gapminder))
}

## # A tibble: 4 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Dominican Republic Americas 1992 68.5 7351181 3044.
## 2 Dominican Republic Americas 1997 70.0 7992357 3614.
## 3 Dominican Republic Americas 2002 70.8 8650322 4564.
## 4 Dominican Republic Americas 2007 72.2 9319622 6025.
1.2. Obtenga los datos en la Rep. Dom. para los años 1952,1972,1992, utilizando el operador
contenido en. Evite salga seleccionada la columna continente en la consulta realizada.
if (require("dplyr")) {
gapminder %>%
filter(country== "Dominican Republic", year %in% c(1957,1972,1992)) %>%
#No me juzgue, decisiones dificiles necesitan codigos audaces
select(everything(gapminder),-continent)
}

## # A tibble: 3 x 5
## country year lifeExp pop gdpPercap
## <fct> <int> <dbl> <int> <dbl>
## 1 Dominican Republic 1957 49.8 2923186 1544.
## 2 Dominican Republic 1972 59.6 4671329 2190.
## 3 Dominican Republic 1992 68.5 7351181 3044.
2. Obtenga todos los países del continente americano, una representación ordenada según
esperanza de vida, durante el año más reciente disponible en la base de datos.
if (require("dplyr")) {
gapminder %>%
filter(continent== "Americas", year==max(gapminder$year)) %>%
select(everything(gapminder))%>%
arrange(lifeExp)

2
}

## # A tibble: 25 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Haiti Americas 2007 60.9 8502814 1202.
## 2 Bolivia Americas 2007 65.6 9119152 3822.
## 3 Trinidad and Tobago Americas 2007 69.8 1056608 18009.
## 4 Honduras Americas 2007 70.2 7483763 3548.
## 5 Guatemala Americas 2007 70.3 12572928 5186.
## 6 Peru Americas 2007 71.4 28674757 7409.
## 7 Paraguay Americas 2007 71.8 6667147 4173.
## 8 El Salvador Americas 2007 71.9 6939688 5728.
## 9 Dominican Republic Americas 2007 72.2 9319622 6025.
## 10 Brazil Americas 2007 72.4 190010647 9066.
## # ... with 15 more rows
2.1. Indique cuál es el país con menor esperanza de vida mediante un código que te permita
llamarlo de forma automática.
America<-if (require("dplyr")) {
gapminder %>%
filter(continent== "Americas", year==max(gapminder$year))
}
#cree una variable, pero si usted queria literalmente un codigo
if (require("dplyr")){
America %>%
filter(lifeExp==min(America$lifeExp))
}

## # A tibble: 1 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Haiti Americas 2007 60.9 8502814 1202.
#Esto es lo mismo, pero en un solo cofigo

if (require("dplyr")){
if (require("dplyr")) {
gapminder %>%
filter(continent== "Americas", year==max(gapminder$year))
} %>%
filter(lifeExp==min(if (require("dplyr")) {
gapminder %>%
filter(continent== "Americas", year==max(gapminder$year))
}$lifeExp))
}

## # A tibble: 1 x 6
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Haiti Americas 2007 60.9 8502814 1202.
3. Obtenga el promedio, max, min, rango, var, y coef de var. de la experanza de vida segun
continente, ordenada de menor a mayor en término de esperanza de vida.

3
coef_var <- function(x, na.rm = FALSE) {
sd(x, na.rm=na.rm) / mean(x, na.rm=na.rm)
}
if (require("dplyr")){
gapminder %>%
filter(year==max(gapminder$year))%>%
select(everything(gapminder))%>%
group_by(continent)%>%
summarize(mean_lifeExp= mean(lifeExp),min_lifeExp=min(lifeExp),
max_lifeExp=max(lifeExp),sd_lifeExp=sd(lifeExp),
cv_lifeExp=coef_var(lifeExp))%>%
arrange(mean_lifeExp)#funicono? pues si
}

## # A tibble: 5 x 6
## continent mean_lifeExp min_lifeExp max_lifeExp sd_lifeExp cv_lifeExp
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Africa 54.8 39.6 76.4 9.63 0.176
## 2 Asia 70.7 43.8 82.6 7.96 0.113
## 3 Americas 73.6 60.9 80.7 4.44 0.0603
## 4 Europe 77.6 71.8 81.8 2.98 0.0384
## 5 Oceania 80.7 80.2 81.2 0.729 0.00903
3.1. repita el ejercicio anteiror, pero muestre un histórico anual por continente.
if (require("dplyr")){
gapminder %>%
group_by(continent,year,.add=TRUE)%>%
summarise(mean_lifeExp= mean(lifeExp),min_lifeExp=min(lifeExp),
max_lifeExp=max(lifeExp),sd_lifeExp=sd(lifeExp),
cv_lifeExp=coef_var(lifeExp))%>%
arrange(continent)
}

## `summarise()` has grouped output by 'continent'. You can override using the `.groups` argument.
## # A tibble: 60 x 7
## # Groups: continent [5]
## continent year mean_lifeExp min_lifeExp max_lifeExp sd_lifeExp cv_lifeExp
## <fct> <int> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Africa 1952 39.1 30 52.7 5.15 0.132
## 2 Africa 1957 41.3 31.6 58.1 5.62 0.136
## 3 Africa 1962 43.3 32.8 60.2 5.88 0.136
## 4 Africa 1967 45.3 34.1 61.6 6.08 0.134
## 5 Africa 1972 47.5 35.4 64.3 6.42 0.135
## 6 Africa 1977 49.6 36.8 67.1 6.81 0.137
## 7 Africa 1982 51.6 38.4 69.9 7.38 0.143
## 8 Africa 1987 53.3 39.9 71.9 7.86 0.147
## 9 Africa 1992 53.6 23.6 73.6 9.46 0.176
## 10 Africa 1997 53.6 36.1 74.8 9.10 0.170
## # ... with 50 more rows
3.2. Verifique si en algún continente se ha reducido la esperanza de vida, durante el periodo
de análisis. De cada continente se muestra el primer y último valor disponible. Para esto,
cree una columna llamada variacion que tome el valor de 1, en caso que la experanza de vida
promedio por continente haya aumentado. utilice las funciones first and first, en mutate.

4
if (require("dplyr")){
gapminder %>%
select(everything(gapminder))%>%
group_by(continent)%>%
mutate(y1952_first=first(lifeExp),y2007_last=last(lifeExp),variacion= as.numeric(first(lifeExp)<last
summarise(mean_lifeExp= mean(lifeExp),min_lifeExp=min(lifeExp),max_lifeExp=max(lifeExp),y1952_first=
y2007_last=last(lifeExp),variacion= as.numeric(first(lifeExp)<last(lifeExp)))
}

## # A tibble: 5 x 7
## continent mean_lifeExp min_lifeExp max_lifeExp y1952_first y2007_last
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Africa 48.9 23.6 76.4 43.1 43.5
## 2 Americas 64.7 37.6 80.7 62.5 73.7
## 3 Asia 60.1 28.8 82.6 28.8 62.7
## 4 Europe 71.9 43.6 81.8 55.2 79.4
## 5 Oceania 74.3 69.1 81.2 69.1 80.2
## # ... with 1 more variable: variacion <dbl>
3.3. Indique la variación relativa (tasa de crecimiento) de la esperanza de vida promedio por
continente.
T.Crecimiento <- function(x,y) {
100*(y-x)/x
}
if (require("dplyr")){
gapminder %>%
select(everything(gapminder))%>%
group_by(continent)%>%
mutate(y1952_first=first(lifeExp),y2007_last=last(lifeExp),
variacion= as.numeric(first(lifeExp)<last(lifeExp)),T.Crecimiento(first(lifeExp),last(lifeExp
summarise(mean_lifeExp= mean(lifeExp),y1952_first=first(lifeExp),
y2007_last=last(lifeExp),T.Crecimiento(first(lifeExp),last(lifeExp)))
}

## # A tibble: 5 x 5
## continent mean_lifeExp y1952_first y2007_last `T.Crecimiento(first(lifeExp), ~
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 Africa 48.9 43.1 43.5 0.952
## 2 Americas 64.7 62.5 73.7 18.0
## 3 Asia 60.1 28.8 62.7 118.
## 4 Europe 71.9 55.2 79.4 43.8
## 5 Oceania 74.3 69.1 80.2 16.0
3.4. Ordene los datos según magnitud de esta tasa relativa, para estudiar cuales fuenron los
continentes con mayor y menor nivel de cambio.
T.Crecimiento <- function(x,y) {
100*(y-x)/x
}
if (require("dplyr")){
gapminder %>%
select(everything(gapminder))%>%
group_by(continent)%>%
mutate(y1952_first=first(lifeExp),y2007_last=last(lifeExp),
variacion= as.numeric(first(lifeExp)<last(lifeExp)),T.Crecimiento(first(lifeExp),last(lifeExp

5
summarise(mean_lifeExp= mean(lifeExp),y1952_first=first(lifeExp),
y2007_last=last(lifeExp),tasacrecimiento=T.Crecimiento(first(lifeExp),last(lifeExp)))%>%
arrange(tasacrecimiento)
}

## # A tibble: 5 x 5
## continent mean_lifeExp y1952_first y2007_last tasacrecimiento
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 Africa 48.9 43.1 43.5 0.952
## 2 Oceania 74.3 69.1 80.2 16.0
## 3 Americas 64.7 62.5 73.7 18.0
## 4 Europe 71.9 55.2 79.4 43.8
## 5 Asia 60.1 28.8 62.7 118.
3.5. Repita el ejercicio anteiror de forma completa, pero en vez de continente, obtenta sus
resultados a nivel de paises. En algún país se muestra una reducción relativa en su esperanza
de vida?
if (require("dplyr")){
gapminder %>%
select(everything(gapminder))%>%
group_by(country)%>%
mutate(y1952_first=first(lifeExp),y2007_last=last(lifeExp),
variacion= as.numeric(first(lifeExp)<last(lifeExp)),T.Crecimiento(first(lifeExp),last(lifeExp
summarise(mean_lifeExp= mean(lifeExp),y1952_first=first(lifeExp),
y2007_last=last(lifeExp),tasacrecimiento=T.Crecimiento(first(lifeExp),last(lifeExp)))%>%
arrange(tasacrecimiento)
}

## # A tibble: 142 x 5
## country mean_lifeExp y1952_first y2007_last tasacrecimiento
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 Zimbabwe 52.7 48.5 43.5 -10.2
## 2 Swaziland 49.0 41.4 39.6 -4.33
## 3 Zambia 46.0 42.0 42.4 0.823
## 4 Lesotho 50.0 42.1 42.6 1.08
## 5 Botswana 54.6 47.6 50.7 6.52
## 6 South Africa 54.0 45.0 49.3 9.62
## 7 Norway 75.8 72.7 80.2 10.4
## 8 Netherlands 75.6 72.1 79.8 10.6
## 9 Denmark 74.4 70.8 78.3 10.7
## 10 Sweden 76.2 71.9 80.9 12.6
## # ... with 132 more rows
3.6. Muestre los países que en 2007 tienen esperanza de vida mayor o igual a 70 años,
ordenados por lifeExp de forma descendente y ascendente.
BDuwu<-if (require("dplyr")){
gapminder %>%
group_by(country)%>%
select(everything(gapminder))%>%
filter(lifeExp>=70,year==2007)
}
if (require("dplyr")){
BDuwu %>%
select(everything(gapminder))%>%

6
arrange(BDuwu$lifeExp)
}

## # A tibble: 83 x 6
## # Groups: country [83]
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Honduras Americas 2007 70.2 7483763 3548.
## 2 Guatemala Americas 2007 70.3 12572928 5186.
## 3 Thailand Asia 2007 70.6 65068149 7458.
## 4 Indonesia Asia 2007 70.6 223547000 3541.
## 5 Iran Asia 2007 71.0 69453570 11606.
## 6 Morocco Africa 2007 71.2 33757175 3820.
## 7 Egypt Africa 2007 71.3 80264543 5581.
## 8 Peru Americas 2007 71.4 28674757 7409.
## 9 Philippines Asia 2007 71.7 91077287 3190.
## 10 Paraguay Americas 2007 71.8 6667147 4173.
## # ... with 73 more rows
if (require("dplyr")){
BDuwu %>%
select(everything(gapminder))%>%
arrange(desc(BDuwu$lifeExp))
}

## # A tibble: 83 x 6
## # Groups: country [83]
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Japan Asia 2007 82.6 127467972 31656.
## 2 Hong Kong, China Asia 2007 82.2 6980412 39725.
## 3 Iceland Europe 2007 81.8 301931 36181.
## 4 Switzerland Europe 2007 81.7 7554661 37506.
## 5 Australia Oceania 2007 81.2 20434176 34435.
## 6 Spain Europe 2007 80.9 40448191 28821.
## 7 Sweden Europe 2007 80.9 9031088 33860.
## 8 Israel Asia 2007 80.7 6426679 25523.
## 9 France Europe 2007 80.7 61083916 30470.
## 10 Canada Americas 2007 80.7 33390141 36319.
## # ... with 73 more rows
4. Indique cuantas observaciones existen por continente durante cada año de la muestra.
Verifique cual es el continente con mayor cantidad de observaciones.
if (require("dplyr")){
gapminder %>%
group_by(continent,year)%>%
summarize(observaciones= n() )%>%
arrange(desc(observaciones))
}

## `summarise()` has grouped output by 'continent'. You can override using the `.groups` argument.
## # A tibble: 60 x 3
## # Groups: continent [5]
## continent year observaciones

7
## <fct> <int> <int>
## 1 Africa 1952 52
## 2 Africa 1957 52
## 3 Africa 1962 52
## 4 Africa 1967 52
## 5 Africa 1972 52
## 6 Africa 1977 52
## 7 Africa 1982 52
## 8 Africa 1987 52
## 9 Africa 1992 52
## 10 Africa 1997 52
## # ... with 50 more rows
4.1. Contabilice la cantidad de observaciones por continente, a lo largo de toda la muestra.
if (require("dplyr")){
gapminder %>%
group_by(continent)%>%
summarize(observaciones= n())
}

## # A tibble: 5 x 2
## continent observaciones
## <fct> <int>
## 1 Africa 624
## 2 Americas 300
## 3 Asia 396
## 4 Europe 360
## 5 Oceania 24
4.2. Contabilice el número de paises distintos que existen en la muestra por continente.
Verifique la función: n_distinct
if (require("dplyr")){
gapminder %>%
group_by(continent)%>%
summarize(observaciones= n(),n_countries=n_distinct(country))
}

## # A tibble: 5 x 3
## continent observaciones n_countries
## <fct> <int> <int>
## 1 Africa 624 52
## 2 Americas 300 25
## 3 Asia 396 33
## 4 Europe 360 30
## 5 Oceania 24 2
5. Obtenga el producto per-cápita promedio anual del mundo.
if (require("dplyr")){
gapminder %>%
group_by(year)%>%
summarize(promedio=mean(gdpPercap))
}

## # A tibble: 12 x 2
## year promedio

8
## <int> <dbl>
## 1 1952 3725.
## 2 1957 4299.
## 3 1962 4726.
## 4 1967 5484.
## 5 1972 6770.
## 6 1977 7313.
## 7 1982 7519.
## 8 1987 7901.
## 9 1992 8159.
## 10 1997 9090.
## 11 2002 9918.
## 12 2007 11680.
5.1. Al 2007 verifique cuál es el continente con menor producto per-cápita promedio.
if (require("dplyr")){
gapminder %>%
group_by(continent)%>%
filter(year==2007)%>%
summarise(promedio=mean(gdpPercap))%>%
select(continent,promedio)%>%
filter(promedio==min(promedio))
}

## # A tibble: 1 x 2
## continent promedio
## <fct> <dbl>
## 1 Africa 3089.
5.2. Al 2007 verifique cuál es el país con menor producto per-cápita en 2007.
if (require("dplyr")){
gapminder %>%
group_by(country)%>%
filter(year==2007)%>%
summarise(gdpPercap)%>%
select(country,gdpPercap)%>%
filter(gdpPercap==min(gdpPercap))
}

## # A tibble: 1 x 2
## country gdpPercap
## <fct> <dbl>
## 1 Congo, Dem. Rep. 278.
5.3. Para 1952 y 2007, muestre el producto per-cápita por países.
if (require("dplyr")){
gapminder %>%
filter(year%in% c(1952,2007))%>%
group_by(country)%>%
select(country,year,gdpPercap)
}

## # A tibble: 284 x 3
## # Groups: country [142]
## country year gdpPercap

9
## <fct> <int> <dbl>
## 1 Afghanistan 1952 779.
## 2 Afghanistan 2007 975.
## 3 Albania 1952 1601.
## 4 Albania 2007 5937.
## 5 Algeria 1952 2449.
## 6 Algeria 2007 6223.
## 7 Angola 1952 3521.
## 8 Angola 2007 4797.
## 9 Argentina 1952 5911.
## 10 Argentina 2007 12779.
## # ... with 274 more rows
5.4. Por año, muestre los paises con menor producto per-cápita. pista: slice(which.min(x))
if (require("dplyr")){
gapminder %>%
group_by(year)%>%
slice(which.min(gdpPercap))%>%
select(everything())
}

## # A tibble: 12 x 6
## # Groups: year [12]
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Lesotho Africa 1952 42.1 748747 299.
## 2 Lesotho Africa 1957 45.0 813338 336.
## 3 Burundi Africa 1962 42.0 2961915 355.
## 4 Myanmar Asia 1967 49.4 25870271 349
## 5 Myanmar Asia 1972 53.1 28466390 357
## 6 Myanmar Asia 1977 56.1 31528087 371
## 7 Myanmar Asia 1982 58.1 34680442 424
## 8 Myanmar Asia 1987 58.3 38028578 385
## 9 Myanmar Asia 1992 59.3 40546538 347
## 10 Congo, Dem. Rep. Africa 1997 42.6 47798986 312.
## 11 Congo, Dem. Rep. Africa 2002 45.0 55379852 241.
## 12 Congo, Dem. Rep. Africa 2007 46.5 64606759 278.
5.5. Repita el ejercicio anterior, solo para los años de 1952 y 2007, muestre los paises con
menor producto per-cápita.
if (require("dplyr")){
gapminder %>%
group_by(year)%>%
filter(year%in% c(1952,2007))%>%
slice(which.min(gdpPercap))%>%
select(everything())
}

## # A tibble: 2 x 6
## # Groups: year [2]
## country continent year lifeExp pop gdpPercap
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 Lesotho Africa 1952 42.1 748747 299.
## 2 Congo, Dem. Rep. Africa 2007 46.5 64606759 278.

10
6. Cree una variable que indique el rango en que se encuentre el pc promedio de cada conti-
nente durante el 2007 (pista, utilice rank dentro de la opción mutate). Es decir, al país con
menor pc se le otorga el número 1, al segundo menor el 2,. . .
if (require("dplyr")){
gapminder %>%
filter(year==2007)%>%
group_by(continent)%>%
summarise(promedio=mean(gdpPercap))%>%
mutate(posicion=rank(promedio))%>%
arrange(posicion)%>%
select(continent,promedio,posicion)
}#un codigo simple pero efectivo

## # A tibble: 5 x 3
## continent promedio posicion
## <fct> <dbl> <dbl>
## 1 Africa 3089. 1
## 2 Americas 11003. 2
## 3 Asia 12473. 3
## 4 Europe 25054. 4
## 5 Oceania 29810. 5
6.1. Agregue dos columnas donde se muestre la distribución relativa del gdpPercap promedio
de cada continente. Es decir, una columna donde se muestre el porcentaje de la suma del
pc que representa cada continente, y otra con la frecuencia acumulada. Pista, la función
cume_dist en mutate, brinda la frecuencia acumulada.
relativo<-function(x){
x/sum(x)
}#No me juzgue por crear funciones, aveces hay que simplificarse uwun't
if (require("dplyr")){
gapminder %>%
filter(year==2007)%>%
group_by(continent)%>%
summarise(promedio=mean(gdpPercap))%>%
mutate(posicion=rank(promedio),pcAcumulado=cume_dist(promedio),
pcaRelativo=relativo(promedio))%>%
arrange(posicion)%>%
select(continent,promedio,posicion,pcaRelativo,pcAcumulado)
}

## # A tibble: 5 x 5
## continent promedio posicion pcaRelativo pcAcumulado
## <fct> <dbl> <dbl> <dbl> <dbl>
## 1 Africa 3089. 1 0.0379 0.2
## 2 Americas 11003. 2 0.135 0.4
## 3 Asia 12473. 3 0.153 0.6
## 4 Europe 25054. 4 0.308 0.8
## 5 Oceania 29810. 5 0.366 1
6.1. Cree una variable que indique el rango en que se encuentre en el país. Es decir, si el
pais tiene el pc más bajo durante un año, le indieque en que posicián está.
if (require("dplyr")){
gapminder %>%
filter(year==2007)%>%

11
group_by(country)%>%
summarise(promedio=mean(gdpPercap))%>%
mutate(posicion=rank(promedio))%>%
select(country,promedio,posicion)
}

## # A tibble: 142 x 3
## country promedio posicion
## <fct> <dbl> <dbl>
## 1 Afghanistan 975. 19
## 2 Albania 5937. 70
## 3 Algeria 6223. 72
## 4 Angola 4797. 64
## 5 Argentina 12779. 101
## 6 Australia 34435. 130
## 7 Austria 36126. 132
## 8 Bahrain 29796. 122
## 9 Bangladesh 1391. 30
## 10 Belgium 33693. 128
## # ... with 132 more rows
6.2. Presente el ranking de forma invertida, 1 sea el mayor en vez del menor.
if (require("dplyr")){
gapminder %>%
filter(year==2007)%>%
group_by(country)%>%
summarise(promedio=mean(gdpPercap))%>%
mutate(posicion=rank(desc(promedio)))%>%
select(country,promedio,posicion)
}

## # A tibble: 142 x 3
## country promedio posicion
## <fct> <dbl> <dbl>
## 1 Afghanistan 975. 124
## 2 Albania 5937. 73
## 3 Algeria 6223. 71
## 4 Angola 4797. 79
## 5 Argentina 12779. 42
## 6 Australia 34435. 13
## 7 Austria 36126. 11
## 8 Bahrain 29796. 21
## 9 Bangladesh 1391. 113
## 10 Belgium 33693. 15
## # ... with 132 more rows
6.2. Repita el ejercicio anteiror, para verificar cual ha sido la posición de Rep. Dom. en 2007
(ejericio 6.1.). (pista, puede usar el comando filter dos veces en una misma consulta)
if (require("dplyr")){
gapminder %>%
filter(year==2007)%>%
group_by(country)%>%
summarise(promedio=mean(gdpPercap))%>%
mutate(posicion=rank(promedio))%>%

12
select(country,promedio,posicion)%>%
filter(country=="Dominican Republic")
}

## # A tibble: 1 x 3
## country promedio posicion
## <fct> <dbl> <dbl>
## 1 Dominican Republic 6025. 71

13

También podría gustarte