En este laboratorio, aplicará varios comandos de graficación y de manejo de datos geoespaciales vectoriales en el lenguaje de programación R. También trabajará con datos tabulares y gráficos. El resultado final será un documento en la sintaxis R Markdown publicado en GitHub Pages.
La fecha límite de entrega de este laboratorio es el lunes 18 de mayo de 2020. Debe enviarle al profesor por correo electrónico la dirección del sitio en GitHub Pages resultante.
Se recomienda leer el material preparado por el profesor y consultar los recursos listados en:
Ejecute los siguientes pasos para bifurcar a su cuenta en GitHub el repositorio que contiene este documento y posteriormente clonarlo a su computadora, para editarlo con RStudio:
En los siguientes ejercicios se utiliza el data frame world
, contenido en el paquete spData.
# Paquete para generación de documentos (ej. HTML)
library(knitr)
# Paquete para formateo de tablas
library(kableExtra)
# Paquete de graficación
library(ggplot2)
# Paquete de manejo de datos geoespaciales vectoriales
library(sf)
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 6.3.1
# Paquete con conjuntos de datos geoespaciales
library(spData)
Realice los siguientes ejercicios de graficación y manejo de datos vectoriales en R (el valor porcentual de cada uno se muestra entre paréntesis).
Mediante la función names()
, observe las columnas que componen el data frame world
.
names(world)
## [1] "iso_a2" "name_long" "continent" "region_un" "subregion" "type"
## [7] "area_km2" "pop" "lifeExp" "gdpPercap" "geom"
NOTA: recuerde que también puede explorar los datos con funciones como str()
, summary()
y View()
.
Mediante la función kable()
del paquete knitr, despliegue en una tabla las diez primeras observaciones (i.e. filas, registros) y las cinco primeras variables (i.e. columnas) del data frame world
.
kable(
world[1:10, 1:5, drop = TRUE],
caption="Datos demográficos de los países del mundo"
)
iso_a2 | name_long | continent | region_un | subregion |
---|---|---|---|---|
FJ | Fiji | Oceania | Oceania | Melanesia |
TZ | Tanzania | Africa | Africa | Eastern Africa |
EH | Western Sahara | Africa | Africa | Northern Africa |
CA | Canada | North America | Americas | Northern America |
US | United States | North America | Americas | Northern America |
KZ | Kazakhstan | Asia | Asia | Central Asia |
UZ | Uzbekistan | Asia | Asia | Central Asia |
PG | Papua New Guinea | Oceania | Oceania | Melanesia |
ID | Indonesia | Asia | Asia | South-Eastern Asia |
AR | Argentina | South America | Americas | South America |
Note el uso del parámetro drop=TRUE
, para evitar el despliegue de la tabla de geometrías.
Mediante la función kable()
, despliegue en una tabla las diez primeras observaciones y las variables correspondientes a nombre del país, continente, población, esperanza de vida y renta per cápita del data frame world
. Despliegue los nombres de las columnas en español y un título para la tabla.
kable(
world[1:10, c("name_long","continent","pop","lifeExp","gdpPercap"), drop = TRUE],
col.names=c("País","Continente","Población","Esperanza de vida","Renta per cápita"),
caption="Datos demográficos de los países del mundo"
)
País | Continente | Población | Esperanza de vida | Renta per cápita |
---|---|---|---|---|
Fiji | Oceania | 885806 | 69.96000 | 8222.254 |
Tanzania | Africa | 52234869 | 64.16300 | 2402.099 |
Western Sahara | Africa | NA | NA | NA |
Canada | North America | 35535348 | 81.95305 | 43079.143 |
United States | North America | 318622525 | 78.84146 | 51921.985 |
Kazakhstan | Asia | 17288285 | 71.62000 | 23587.338 |
Uzbekistan | Asia | 30757700 | 71.03900 | 5370.866 |
Papua New Guinea | Oceania | 7755785 | 65.23000 | 3709.082 |
Indonesia | Asia | 255131116 | 68.85600 | 10003.089 |
Argentina | South America | 42981515 | 76.25200 | 18797.548 |
A partir de world
, genere un nuevo data frame ordenado por nombre de país. Despliegue los datos en una tabla y utilice las funciones kable_styling()
y scroll_box()
del paquete kableExtra, para desplegar todas las observaciones, con las mismas variables del ejercicio anterior, y agregar una barra de desplazamiento.
# Se extraen las observaciones ordenadas por orden alfabético de país
world.orden <- order(world$name_long)
# Se genera un nuevo data frame ordenado
world.ordenadoxpais <- world[world.orden,]
# Se formatea la tabla con el nuevo data frame
kable(
world.ordenadoxpais[, c("name_long","continent","pop","lifeExp","gdpPercap"), drop = TRUE],
col.names=c("País","Continente","Población","Esperanza de vida","Renta per cápita"),
caption="Datos demográficos de los países del mundo"
) %>%
kable_styling() %>%
scroll_box(
width = "800px",
height = "500px",
fixed_thead = TRUE
)
País | Continente | Población | Esperanza de vida | Renta per cápita |
---|---|---|---|---|
Afghanistan | Asia | 32758020 | 62.89500 | 1838.9602 |
Albania | Europe | 2889104 | 77.96300 | 10701.1208 |
Algeria | Africa | 39113313 | 75.64100 | 13483.3379 |
Angola | Africa | 26920466 | 60.85800 | 6257.1529 |
Antarctica | Antarctica | NA | NA | NA |
Argentina | South America | 42981515 | 76.25200 | 18797.5479 |
Armenia | Asia | 2906220 | 74.25500 | 7971.1179 |
Australia | Oceania | 23504138 | 82.30000 | 43547.1975 |
Austria | Europe | 8546356 | 81.49024 | 44320.5020 |
Azerbaijan | Asia | 9535079 | 71.80000 | 16715.1055 |
Bahamas | North America | 382169 | 75.37900 | 28456.8165 |
Bangladesh | Asia | 159405279 | 71.80300 | 2973.0416 |
Belarus | Europe | 9474511 | 72.97073 | 17944.2098 |
Belgium | Europe | 11209057 | 81.28780 | 41360.3956 |
Belize | North America | 351694 | 70.02700 | 7999.5737 |
Benin | Africa | 10286712 | 60.37300 | 2001.0773 |
Bhutan | Asia | 776448 | 69.43000 | 7366.4241 |
Bolivia | South America | 10562159 | 68.35700 | 6324.8273 |
Bosnia and Herzegovina | Europe | 3566002 | 76.56100 | 10516.7864 |
Botswana | Africa | 2168573 | 64.78000 | 15914.6702 |
Brazil | South America | 204213133 | 75.04200 | 15374.2615 |
Brunei Darussalam | Asia | 411704 | 76.91700 | 76089.2866 |
Bulgaria | Europe | 7223938 | 74.46585 | 16302.3206 |
Burkina Faso | Africa | 17585977 | 59.45700 | 1582.3337 |
Burundi | Africa | 9891790 | 56.68800 | 803.1728 |
Cambodia | Asia | 15270790 | 68.25100 | 3124.3193 |
Cameroon | Africa | 22239904 | 57.11100 | 3196.3615 |
Canada | North America | 35535348 | 81.95305 | 43079.1425 |
Central African Republic | Africa | 4515392 | 50.62100 | 597.1352 |
Chad | Africa | 13569438 | 52.20400 | 2076.6500 |
Chile | South America | 17613798 | 79.11700 | 22195.2744 |
China | Asia | 1364270000 | 75.93200 | 12758.6478 |
Colombia | South America | 47791911 | 74.02200 | 12715.9674 |
Costa Rica | North America | 4757575 | 79.44000 | 14372.4008 |
Côte d’Ivoire | Africa | 22531350 | 52.52000 | 3054.5349 |
Croatia | Europe | 4238389 | 77.47805 | 20334.4465 |
Cuba | North America | 11439767 | 79.41500 | NA |
Cyprus | Asia | 1152309 | 80.17300 | 29786.3657 |
Czech Republic | Europe | 10525347 | 78.82439 | 29119.6166 |
Dem. Rep. Korea | Asia | 25116363 | 71.17900 | NA |
Democratic Republic of the Congo | Africa | 73722860 | 58.78200 | 785.3473 |
Denmark | Europe | 5643475 | 80.70000 | 45057.0742 |
Djibouti | Africa | 912164 | 62.00600 | NA |
Dominican Republic | North America | 10405844 | 73.48300 | 12663.0422 |
Ecuador | South America | 15903112 | 75.87900 | 10901.4186 |
Egypt | Africa | 91812566 | 71.12000 | 9879.7994 |
El Salvador | North America | 6281189 | 73.01500 | 6890.7232 |
Equatorial Guinea | Africa | 1129424 | 57.18000 | 31542.5108 |
Eritrea | Africa | NA | 64.17400 | NA |
Estonia | Europe | 1314545 | 77.03415 | 27113.6859 |
eSwatini | Africa | 1295097 | 56.28700 | 7870.9707 |
Ethiopia | Africa | 97366774 | 64.53500 | 1424.5270 |
Falkland Islands | South America | NA | NA | NA |
Fiji | Oceania | 885806 | 69.96000 | 8222.2538 |
Finland | Europe | 5461512 | 81.18049 | 39017.5372 |
France | Europe | NA | NA | NA |
French Southern and Antarctic Lands | Seven seas (open ocean) | NA | NA | NA |
Gabon | Africa | 1875713 | 65.21100 | 16678.6381 |
Georgia | Asia | 3727000 | 72.95100 | 8749.1562 |
Germany | Europe | 80982500 | 81.09024 | 43560.6192 |
Ghana | Africa | 26962563 | 62.15400 | 3868.6009 |
Greece | Europe | 10892413 | 81.38537 | 24081.6305 |
Greenland | North America | 56295 | NA | NA |
Guatemala | North America | 15923559 | 72.86900 | 7147.4292 |
Guinea | Africa | 11805509 | 58.84600 | 1734.7367 |
Guinea-Bissau | Africa | 1725744 | 56.59800 | 1398.2548 |
Guyana | South America | 763393 | 66.42500 | 6906.0123 |
Haiti | North America | 10572466 | 62.75700 | 1652.8548 |
Honduras | North America | 8809216 | 73.18100 | 4231.3251 |
Hungary | Europe | 9866468 | 75.76341 | 24161.4255 |
Iceland | Europe | 327386 | 82.86098 | 41701.1373 |
India | Asia | 1293859294 | 68.02100 | 5385.1418 |
Indonesia | Asia | 255131116 | 68.85600 | 10003.0890 |
Iran | Asia | 78411092 | 75.46600 | 16924.2007 |
Iraq | Asia | 35006080 | 69.45800 | 14838.3829 |
Ireland | Europe | 4657740 | 81.34878 | 48898.3287 |
Israel | Asia | 8215700 | 82.15366 | 31702.0835 |
Italy | Europe | 60789140 | 83.09024 | 33945.8439 |
Jamaica | North America | 2862087 | 75.68900 | 8051.2440 |
Japan | Asia | 127276000 | 83.58780 | 37337.3174 |
Jordan | Asia | 8809306 | 74.03400 | 8622.1855 |
Kazakhstan | Asia | 17288285 | 71.62000 | 23587.3375 |
Kenya | Africa | 46024250 | 66.24200 | 2753.2361 |
Kosovo | Europe | 1821800 | 71.09756 | 8698.2916 |
Kuwait | Asia | 3782450 | 74.45800 | 70832.3684 |
Kyrgyzstan | Asia | 5835500 | 70.40244 | 3181.6422 |
Lao PDR | Asia | 6576397 | 65.97500 | 5436.4826 |
Latvia | Europe | 1993782 | 74.12439 | 22172.2535 |
Lebanon | Asia | 5603279 | 79.23100 | 13831.3752 |
Lesotho | Africa | 2145785 | 53.26800 | 2677.1981 |
Liberia | Africa | 4390737 | 61.52700 | 804.7199 |
Libya | Africa | 6204108 | 71.65900 | 16371.9022 |
Lithuania | Europe | 2932367 | 74.51707 | 26258.2101 |
Luxembourg | Europe | 556319 | 82.22927 | 93655.3342 |
Macedonia | Europe | 2077495 | 75.38400 | 12298.4902 |
Madagascar | Africa | 23589801 | 65.13300 | 1372.0210 |
Malawi | Africa | 17068838 | 61.93200 | 1090.3672 |
Malaysia | Asia | 30228017 | 74.97600 | 24194.6339 |
Mali | Africa | 16962846 | 57.00700 | 1865.1606 |
Mauritania | Africa | 4063920 | 62.90700 | 3655.3885 |
Mexico | North America | 124221600 | 76.75300 | 16622.5970 |
Moldova | Europe | 3556397 | 71.25800 | 4762.7809 |
Mongolia | Asia | 2923896 | 68.84700 | 11348.6473 |
Montenegro | Europe | 621810 | 76.71200 | 14796.6354 |
Morocco | Africa | 34318082 | 75.30900 | 7078.8815 |
Mozambique | Africa | 27212382 | 57.09900 | 1079.8239 |
Myanmar | Asia | 51924182 | 66.28500 | 4770.0121 |
Namibia | Africa | 2370992 | 62.98100 | 9617.3970 |
Nepal | Asia | 28323241 | 69.51100 | 2266.1843 |
Netherlands | Europe | 16865008 | 81.70732 | 45668.4415 |
New Caledonia | Oceania | 268050 | 77.25287 | NA |
New Zealand | Oceania | 4509700 | 81.40488 | 34455.3312 |
Nicaragua | North America | 6013997 | 74.88400 | 4784.8305 |
Niger | Africa | 19148219 | 59.22800 | 904.4567 |
Nigeria | Africa | 176460502 | 52.54900 | 5671.9006 |
Northern Cyprus | Asia | NA | NA | NA |
Norway | Europe | NA | NA | NA |
Oman | Asia | 3960925 | 76.57800 | 40365.2733 |
Pakistan | Asia | 185546257 | 66.13900 | 4576.2270 |
Palestine | Asia | 4294682 | 73.12600 | 4319.5283 |
Panama | North America | 3903986 | 77.61000 | 20017.9944 |
Papua New Guinea | Oceania | 7755785 | 65.23000 | 3709.0816 |
Paraguay | South America | 6552584 | 72.91300 | 8501.5435 |
Peru | South America | 30973354 | 74.51800 | 11547.8342 |
Philippines | Asia | 100102249 | 68.81300 | 6585.8959 |
Poland | Europe | 38011735 | 77.60244 | 24347.0737 |
Portugal | Europe | 10401062 | 81.12195 | 26023.6978 |
Puerto Rico | North America | 3534874 | 79.39012 | 35066.0464 |
Qatar | Asia | 2374419 | 77.88800 | 120860.0676 |
Republic of Korea | Asia | 50746659 | 81.72195 | 33425.6896 |
Republic of the Congo | Africa | 4871101 | 63.53600 | 5538.0529 |
Romania | Europe | 19908979 | 74.96098 | 19677.5203 |
Russian Federation | Europe | 143819666 | 70.74366 | 25284.5862 |
Rwanda | Africa | 11345357 | 66.18800 | 1629.8689 |
Saudi Arabia | Asia | 30776722 | 74.23400 | 49958.4433 |
Senegal | Africa | 14546111 | 66.37600 | 2218.5519 |
Serbia | Europe | 7130576 | 75.33659 | 13112.9090 |
Sierra Leone | Africa | 7079162 | 50.95100 | 1692.1421 |
Slovakia | Europe | 5418649 | 76.81220 | 27285.2847 |
Slovenia | Europe | 2061980 | 81.07805 | 28417.6564 |
Solomon Islands | Oceania | 575504 | 70.11300 | 2139.5607 |
Somalia | Africa | 13513125 | 55.46700 | NA |
Somaliland | Africa | NA | NA | NA |
South Africa | Africa | 54539571 | 60.99300 | 12389.7147 |
South Sudan | Africa | 11530971 | 55.81700 | 1935.8794 |
Spain | Europe | 46480882 | 83.22927 | 31195.4052 |
Sri Lanka | Asia | 20771000 | 74.90600 | 10650.3902 |
Sudan | Africa | 37737913 | 64.00200 | 4188.3348 |
Suriname | South America | 547928 | 71.13800 | 15306.6924 |
Sweden | Europe | 9696110 | 82.25366 | 44167.6319 |
Switzerland | Europe | 8188649 | 83.19756 | 57218.0279 |
Syria | Asia | 19203090 | 69.81700 | NA |
Taiwan | Asia | NA | NA | NA |
Tajikistan | Asia | 8362745 | 70.69000 | 2546.5005 |
Tanzania | Africa | 52234869 | 64.16300 | 2402.0994 |
Thailand | Asia | 68416772 | 74.89500 | 14857.2029 |
The Gambia | Africa | 1917852 | 60.70700 | 1550.2184 |
Timor-Leste | Asia | 1212814 | 68.28500 | 6262.9055 |
Togo | Africa | 7228915 | 59.60100 | 1315.3403 |
Trinidad and Tobago | North America | 1354493 | 70.42600 | 31181.8212 |
Tunisia | Africa | 11143908 | 75.33500 | 10767.0277 |
Turkey | Asia | 77030628 | 75.23900 | 22401.8804 |
Turkmenistan | Asia | 5466241 | 67.55200 | 14332.3658 |
Uganda | Africa | 38833338 | 59.22400 | 1637.2751 |
Ukraine | Europe | 45271947 | 71.18659 | 8243.4735 |
United Arab Emirates | Asia | 9070867 | 76.94800 | 63943.1858 |
United Kingdom | Europe | 64613160 | 81.30488 | 38251.7925 |
United States | North America | 318622525 | 78.84146 | 51921.9846 |
Uruguay | South America | 3419546 | 77.19000 | 19827.5650 |
Uzbekistan | Asia | 30757700 | 71.03900 | 5370.8658 |
Vanuatu | Oceania | 258850 | 71.70900 | 2892.3416 |
Venezuela | South America | 30738378 | 74.19600 | 16745.0220 |
Vietnam | Asia | 92544915 | 75.85500 | 5264.8281 |
Western Sahara | Africa | NA | NA | NA |
Yemen | Asia | 26246327 | 64.52300 | 3766.8053 |
Zambia | Africa | 15620974 | 60.77500 | 3632.5038 |
Zimbabwe | Africa | 15411675 | 59.36000 | 1925.1387 |
Note el uso del operador %>%
, llamado pipe (tubo), para transmitir datos entre funciones.
Filtre el data frame world
para extraer en otro data frame las observaciones correspondientes a los siete países de Centroamérica. Mantenga las mismas columnas de los ejercicios anteriores y despliegue los datos en una tabla.
# Se extraen las observaciones correspondientes a los países de Centroamérica
centro_america = world[world$name_long == "Belize" |
world$name_long == "Guatemala" |
world$name_long == "Honduras" |
world$name_long == "El Salvador" |
world$name_long == "Nicaragua" |
world$name_long == "Costa Rica" |
world$name_long == "Panama"
, ]
# Se formatea la tabla con el nuevo data frame
kable(
centro_america[, c("name_long","continent","pop","lifeExp","gdpPercap"), drop = TRUE],
col.names=c("País","Continente","Población","Esperanza de vida","Renta per cápita"),
caption="Datos demográficos de los países de Centroamérica"
) %>%
kable_styling()
País | Continente | Población | Esperanza de vida | Renta per cápita |
---|---|---|---|---|
Panama | North America | 3903986 | 77.610 | 20017.994 |
Costa Rica | North America | 4757575 | 79.440 | 14372.401 |
Nicaragua | North America | 6013997 | 74.884 | 4784.830 |
Honduras | North America | 8809216 | 73.181 | 4231.325 |
El Salvador | North America | 6281189 | 73.015 | 6890.723 |
Guatemala | North America | 15923559 | 72.869 | 7147.429 |
Belize | North America | 351694 | 70.027 | 7999.574 |
Con la función ggplot()
del paquete ggplot2, genere un gráfico de barras que muestre la esperanza de vida de los siete países de Centroamérica. El gráfico debe tener un título, los nombres (o códigos) de los países bajo cada barra, los valores sobre las barras y etiquetas para los ejes x e y.
Con la función plot()
del paquete sf, genere un mapa de coropletas con colores que reflejen la esperanza de vida de los siete países de Centroamérica. El mapa debe llevar un título.
Extraiga en un nuevo data frame los países de Centroamérica con esperanza de vida mayor o igual a 74 años y genere el mapa de coropletas, con su título correspondiente.