Ejercicios
Primero se carga las librerías a utilizar.
library(tidyverse)
library(readr)
library(knitr)#Para una mejor visualización de las tablas
Importa las tablas que se va a usar para trabajar
Tabla4a <- read_csv("tabla4a.csv")
Tabla4b <- read_csv("tabla4b.csv")
Tabla2 <- read_csv("tabla2.csv")
Tabla3 <- read_csv("tabla3.csv")
Lo que se desea es llevar estas tablas a un formato de Tidy Data
pivot_longer()
Este comando se utiliza cuando en las columnas se tiene los datos de la variable como en los ejemplos que se verán a continuación.
La siguiente tabla tiene un problema, el cual es que en las columnas se encuentran datos que no son variables, y de esta manera no cumplen con las reglas indicadas antes.
kable(Tabla4a)
| Afganistan |
745 |
2666 |
| Brazil |
37737 |
80488 |
| China |
212258 |
213766 |
Para lograr solucionar este problema utilizará el siguiente código
Casos_df <-
Tabla4a %>%
pivot_longer(c("1999", "2000"),
names_to = "Años",
values_to = "Casos")
kable(Casos_df)
| Afganistan |
1999 |
745 |
| Afganistan |
2000 |
2666 |
| Brazil |
1999 |
37737 |
| Brazil |
2000 |
80488 |
| China |
1999 |
212258 |
| China |
2000 |
213766 |
También se vera la tabla4b que tiene el mismo problema
kable(Tabla4b)
| Afganistan |
19987071 |
20595360 |
| Brazil |
172006362 |
174504898 |
| China |
1272915272 |
1280428583 |
Se soluciona
Poblacion_df <-
Tabla4b %>%
pivot_longer(c("1999", "2000"),
names_to = "Años",
values_to = "Población")
kable(Poblacion_df)
| Afganistan |
1999 |
19987071 |
| Afganistan |
2000 |
20595360 |
| Brazil |
1999 |
172006362 |
| Brazil |
2000 |
174504898 |
| China |
1999 |
1272915272 |
| China |
2000 |
1280428583 |
Ahora se tiene que unir las dos tablas que se realizó, esto se logra con left_join lo cual utiliza las dos columnas parecidas o columnas llaves para unirlas en el ejemplo, en este caso son las columnas Pais
data_frame1 <-
Casos_df %>%
left_join(Poblacion_df)
kable(data_frame1)
| Afganistan |
1999 |
745 |
19987071 |
| Afganistan |
2000 |
2666 |
20595360 |
| Brazil |
1999 |
37737 |
172006362 |
| Brazil |
2000 |
80488 |
174504898 |
| China |
1999 |
212258 |
1272915272 |
| China |
2000 |
213766 |
1280428583 |
pivot_wider()
Este comando se utiliza cuando una columna contiene variables entonces esta función permite sacar de una columna las variables que se encuentran en ella. Esta es la tabla para que puedan ver el problema.
kable(Tabla2)
| Afganistan |
1999 |
Poblacion |
19987071 |
| Afganistan |
2000 |
Poblacion |
20595360 |
| Afganistan |
1999 |
Casos |
745 |
| Afganistan |
2000 |
Casos |
2666 |
| Brazil |
1999 |
Poblacion |
172006362 |
| Brazil |
2000 |
Poblacion |
174504898 |
| Brazil |
1999 |
Casos |
37737 |
| Brazil |
2000 |
Casos |
80488 |
| China |
1999 |
Poblacion |
1272915272 |
| China |
2000 |
Poblacion |
1280428583 |
| China |
1999 |
Casos |
212258 |
| China |
2000 |
Casos |
213766 |
Si se puede observar en Tipo se encuentra variables las cuales se tiene que sacar. y esto se soluciona de manera fácil
Tabla2 %>%
pivot_wider(names_from = Tipo, values_from = Cuenta)
En este caso no se colocó el comando kable() por tal motivo se muestra este formato de tabla. ## separete()
Ahora se verá un problema con la columna que contiene información de dos variables como en la siguiente tabla
kable(Tabla3)
| Afganistan |
1999 |
745/19987071 |
| Afganistan |
2000 |
2666/20595360 |
| Brazil |
1999 |
37737/172006362 |
| Brazil |
2000 |
80488/174504898 |
| China |
1999 |
212258/1272915272 |
| China |
2000 |
213766/1280428583 |
Se puede observar que la columna Razon tiene los casos y la población en una misma celda, se procederá a separar con el siguiente comando
Tabla3 %>%
separate(Razon, into = c("Casos", "Población"), sep = "/")
Otro uso a separate()
data_frame2 <-
Tabla3 %>%
separate(Razon, into = c("Casos", "Población"), sep = "/") %>%
separate(Año, into = c("Siglo", "Año"), sep =2)
kable(data_frame2)
| Afganistan |
19 |
99 |
745 |
19987071 |
| Afganistan |
20 |
00 |
2666 |
20595360 |
| Brazil |
19 |
99 |
37737 |
172006362 |
| Brazil |
20 |
00 |
80488 |
174504898 |
| China |
19 |
99 |
212258 |
1272915272 |
| China |
20 |
00 |
213766 |
1280428583 |
unite()
Lo que permite es juntar las columnas.
data_frame2 %>%
unite(nuevo, Siglo, Año, sep="")
Este es un taller realizado en Academatica el mismo que brindo un video explicando todo lo de este RNotebook. El enlace se encuentra en la parte final.
LS0tDQp0aXRsZTogIlRpZHkgRGF0YSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQojIFRhbGxlciBUaWR5IERhdGEgDQpbQWNhZGVtYXRpY2FdKGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9ckQ2VGZxRDBZNEEpDQoNCiMgVGVvcsOtYQ0KDQoNCiMjIFJlZ2xhcw0KDQoxLiBDYWRhIHZhcmlhYmxlIHRpZW5lIHF1ZSB0ZW5lciBzdSBjb2x1bW5hDQoyLiBDYWRhIG9ic2VydmFjacOzbiBkZWJlIGRlIGVzdGFyIGVuIHVuYSBmaWxhDQozLiBDYWRhIHZhbG9yIHRpZW5lIHF1ZSBlc3RhciBlbiB1bmEgY2VsZGENCg0KIyMgVmVudGFqYXMNCg0KMS4gQWwgdGVuZXIgdW5hIGVzdHJ1Y3R1cmEgZXN0w6FuZGFyIGVzIG3DoXMgZsOhY2lsIGFwcmVuZGVyIGxhcyBoZXJyYW1pZW50YXMgcXVlIHV0aWxpemFuIGVzYSBlc3RydWN0dXJhLg0KMi4gQWwgdGVuZXIgdmFyaWFibGVzIGNvbW8gY29sdW1uYXMsIHNlIGxlIHB1ZWRlIHNhY2FyIHByb3ZlY2hvIGEgbGEgbmF0dXJhbGV6YSB2ZWN0b3JpemFkYSBkZSBSLg0KDQojIEVqZXJjaWNpb3MNCg0KUHJpbWVybyBzZSBjYXJnYSBsYXMgbGlicmVyw61hcyBhIHV0aWxpemFyLg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkoa25pdHIpI1BhcmEgdW5hIG1lam9yIHZpc3VhbGl6YWNpw7NuIGRlIGxhcyB0YWJsYXMNCmBgYA0KDQpJbXBvcnRhIGxhcyB0YWJsYXMgcXVlIHNlIHZhIGEgdXNhciBwYXJhIHRyYWJhamFyIA0KYGBge3IgbWVzc2FnZT1GQUxTRX0NClRhYmxhNGEgPC0gcmVhZF9jc3YoInRhYmxhNGEuY3N2IikNClRhYmxhNGIgPC0gcmVhZF9jc3YoInRhYmxhNGIuY3N2IikNClRhYmxhMiA8LSByZWFkX2NzdigidGFibGEyLmNzdiIpDQpUYWJsYTMgPC0gcmVhZF9jc3YoInRhYmxhMy5jc3YiKQ0KYGBgDQoNCkxvIHF1ZSBzZSBkZXNlYSBlcyBsbGV2YXIgZXN0YXMgdGFibGFzIGEgdW4gZm9ybWF0byBkZSAqKlRpZHkgRGF0YSoqDQoNCiMjIHBpdm90X2xvbmdlcigpDQoNCkVzdGUgY29tYW5kbyBzZSB1dGlsaXphIGN1YW5kbyBlbiBsYXMgY29sdW1uYXMgc2UgdGllbmUgbG9zIGRhdG9zIGRlIGxhIHZhcmlhYmxlIGNvbW8gZW4gbG9zIGVqZW1wbG9zIHF1ZSBzZSB2ZXLDoW4gYSBjb250aW51YWNpw7NuLg0KDQpMYSBzaWd1aWVudGUgdGFibGEgdGllbmUgdW4gcHJvYmxlbWEsIGVsIGN1YWwgZXMgcXVlIGVuIGxhcyBjb2x1bW5hcyBzZSBlbmN1ZW50cmFuIGRhdG9zIHF1ZSBubyBzb24gdmFyaWFibGVzLCB5IGRlIGVzdGEgbWFuZXJhIG5vIGN1bXBsZW4gY29uIGxhcyByZWdsYXMgaW5kaWNhZGFzIGFudGVzLg0KDQpgYGB7cn0NCmthYmxlKFRhYmxhNGEpDQpgYGANClBhcmEgbG9ncmFyIHNvbHVjaW9uYXIgZXN0ZSBwcm9ibGVtYSB1dGlsaXphcsOhIGVsIHNpZ3VpZW50ZSBjw7NkaWdvDQoNCmBgYHtyfQ0KQ2Fzb3NfZGYgPC0gDQpUYWJsYTRhICU+JSANCiAgcGl2b3RfbG9uZ2VyKGMoIjE5OTkiLCAiMjAwMCIpLA0KICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAiQcOxb3MiLA0KICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gIkNhc29zIikNCmthYmxlKENhc29zX2RmKQ0KYGBgDQpUYW1iacOpbiBzZSB2ZXJhIGxhIHRhYmxhNGIgcXVlIHRpZW5lIGVsIG1pc21vIHByb2JsZW1hDQoNCmBgYHtyfQ0Ka2FibGUoVGFibGE0YikNCmBgYA0KU2Ugc29sdWNpb25hDQpgYGB7cn0NClBvYmxhY2lvbl9kZiA8LSANClRhYmxhNGIgJT4lIA0KICBwaXZvdF9sb25nZXIoYygiMTk5OSIsICIyMDAwIiksDQogICAgICAgICAgICAgICBuYW1lc190byA9ICJBw7FvcyIsDQogICAgICAgICAgICAgICB2YWx1ZXNfdG8gPSAiUG9ibGFjacOzbiIpDQprYWJsZShQb2JsYWNpb25fZGYpDQpgYGANCkFob3JhIHNlIHRpZW5lIHF1ZSB1bmlyIGxhcyBkb3MgdGFibGFzIHF1ZSBzZSByZWFsaXrDsywgZXN0byBzZSBsb2dyYSBjb24gYGxlZnRfam9pbmAgbG8gY3VhbCB1dGlsaXphIGxhcyBkb3MgY29sdW1uYXMgcGFyZWNpZGFzIG8gY29sdW1uYXMgbGxhdmVzIHBhcmEgdW5pcmxhcyBlbiBlbCBlamVtcGxvLCBlbiBlc3RlIGNhc28gc29uIGxhcyBjb2x1bW5hcyAqKlBhaXMqKg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFfQ0KZGF0YV9mcmFtZTEgPC0gDQpDYXNvc19kZiAlPiUgDQogIGxlZnRfam9pbihQb2JsYWNpb25fZGYpDQprYWJsZShkYXRhX2ZyYW1lMSkNCmBgYA0KDQojIyBwaXZvdF93aWRlcigpDQpFc3RlIGNvbWFuZG8gc2UgdXRpbGl6YSBjdWFuZG8gdW5hIGNvbHVtbmEgY29udGllbmUgdmFyaWFibGVzIGVudG9uY2VzIGVzdGEgZnVuY2nDs24gcGVybWl0ZSBzYWNhciBkZSB1bmEgY29sdW1uYSBsYXMgdmFyaWFibGVzIHF1ZSBzZSBlbmN1ZW50cmFuIGVuIGVsbGEuDQpFc3RhIGVzIGxhIHRhYmxhIHBhcmEgcXVlIHB1ZWRhbiB2ZXIgZWwgcHJvYmxlbWEuDQpgYGB7cn0NCmthYmxlKFRhYmxhMikNCmBgYA0KU2kgc2UgcHVlZGUgb2JzZXJ2YXIgZW4gVGlwbyBzZSBlbmN1ZW50cmEgdmFyaWFibGVzIGxhcyBjdWFsZXMgc2UgdGllbmUgcXVlIHNhY2FyLiB5IGVzdG8gc2Ugc29sdWNpb25hIGRlIG1hbmVyYSBmw6FjaWwNCg0KYGBge3J9DQpUYWJsYTIgJT4lDQogIHBpdm90X3dpZGVyKG5hbWVzX2Zyb20gPSBUaXBvLCB2YWx1ZXNfZnJvbSA9IEN1ZW50YSkNCmBgYA0KRW4gZXN0ZSBjYXNvIG5vIHNlIGNvbG9jw7MgZWwgY29tYW5kbyBga2FibGUoKWAgcG9yIHRhbCBtb3Rpdm8gc2UgbXVlc3RyYSBlc3RlIGZvcm1hdG8gZGUgdGFibGEuDQojIyBzZXBhcmV0ZSgpDQoNCkFob3JhIHNlIHZlcsOhIHVuIHByb2JsZW1hIGNvbiBsYSBjb2x1bW5hIHF1ZSBjb250aWVuZSBpbmZvcm1hY2nDs24gZGUgZG9zIHZhcmlhYmxlcyBjb21vIGVuIGxhIHNpZ3VpZW50ZSB0YWJsYQ0KYGBge3J9DQprYWJsZShUYWJsYTMpDQpgYGANClNlIHB1ZWRlIG9ic2VydmFyIHF1ZSBsYSBjb2x1bW5hIFJhem9uIHRpZW5lIGxvcyBjYXNvcyB5IGxhIHBvYmxhY2nDs24gZW4gdW5hIG1pc21hIGNlbGRhLCBzZSBwcm9jZWRlcsOhIGEgc2VwYXJhciBjb24gZWwgc2lndWllbnRlIGNvbWFuZG8NCg0KYGBge3J9DQpUYWJsYTMgJT4lIA0KICBzZXBhcmF0ZShSYXpvbiwgaW50byA9IGMoIkNhc29zIiwgIlBvYmxhY2nDs24iKSwgc2VwID0gIi8iKQ0KYGBgDQoNCk90cm8gdXNvIGEgYHNlcGFyYXRlKClgDQpgYGB7cn0NCmRhdGFfZnJhbWUyIDwtIA0KVGFibGEzICU+JSANCiAgc2VwYXJhdGUoUmF6b24sIGludG8gPSBjKCJDYXNvcyIsICJQb2JsYWNpw7NuIiksIHNlcCA9ICIvIikgJT4lDQogIHNlcGFyYXRlKEHDsW8sIGludG8gPSBjKCJTaWdsbyIsICJBw7FvIiksIHNlcCA9MikNCmthYmxlKGRhdGFfZnJhbWUyKQ0KYGBgDQoNCiMjIHVuaXRlKCkNCkxvIHF1ZSBwZXJtaXRlIGVzIGp1bnRhciBsYXMgY29sdW1uYXMuDQpgYGB7cn0NCmRhdGFfZnJhbWUyICU+JSANCiAgdW5pdGUobnVldm8sIFNpZ2xvLCBBw7FvLCBzZXA9IiIpDQpgYGANCg0KRXN0ZSBlcyB1biB0YWxsZXIgcmVhbGl6YWRvIGVuIEFjYWRlbWF0aWNhIGVsIG1pc21vIHF1ZSBicmluZG8gdW4gdmlkZW8gZXhwbGljYW5kbyB0b2RvIGxvIGRlIGVzdGUgUk5vdGVib29rLiBFbCBlbmxhY2Ugc2UgZW5jdWVudHJhIGVuIGxhIHBhcnRlIGZpbmFsLg0KDQojIyMgUmVmZXJlbmNpYXMgDQoNCltSIGZvciBEYXRhIFNjaWVuY2VdKGh0dHBzOi8vcjRkcy5oYWQuY28ubnovdGlkeS1kYXRhLmh0bWwpDQoNClRhbGxlciBUaWR5IERhdGEgW0FjYWRlbWF0aWNhXShodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXJENlRmcUQwWTRBKQ0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==