Título

Autores

Rodrigo Abadías Alacid

Última modificación

18 de octubre de 2024

Actividad 1

Si pones el siguiente chunk en eval = T y te aseguras de que el archivo aadd_unit2.png se encuentra en tu directorio de trabajo, verás el marco de datos COW Trade 4.0. Observa los datos de la imagen y consulta, si lo crees necesario, la página web para responder a las siguientes preguntas:

  1. ¿Cuántas observaciones y variables tiene?
    La tabla cuenta con 10 observaciones y 10 variables.

  2. ¿Cuál es la unidad de observación?
    La unidad de observación parece ser el comercio entre países, en este caso, Estados Unidos y Canadá, entre 1920 y 1929.Recogido en los propios datos que aportan los países.

  3. ¿Qué tipo de variables tiene? Las categorías importer1 e importer2, que son los nombres de los países y ccode1 y ccode 2, que son los codigos que les ponen a cada país, son variables nominales, las variables de ratio son flow1 y flow2 que deben respresentar los flujos entre países, smoothflow1 y smoothflow2, que verdaderamente no sé en que se diferencia con flow1 y flow2 y el smoothtotrade que debe ser la suma de los flujos. Como variable de intervalo encontramos el year, que es el año donde ocurren estos flujos .

  4. ¿Cuál es el nivel de análisis? El nivel de análisis en tercera imagen, en este caso variables relacionadas con los países, como el volumen total del comercio.

  5. Propón una pregunta que se pueda contestar con este marco de datos. La pregunta es la siguiente, ¿Cómo ha evolucionado el comercio entre Canadá y Estados Unidos al largo de los años? Usando los datos de flujos comerciales entre estos dos países a lo largo de los años, se podría analizar si ha habido un crecimiento o decrecimiento en el mismo.

  6. Pon un ejemplo de problema de falacia ecológica con estos datos. El ejemplo es el siguiente, supongamos que se observa que Canadá tiene un alto flujo comercial con los Estados Unidos y que ambos países tienen altos niveles de PIB. Con base en esto, se podría concluir incorrectamente que todos los individuos de Canadá tienen altos ingresos o que están mejor económicamente por el alto comercio entre los países. Sin embargo, esta inferencia es un error porque las observaciones reflejan niveles agregados de comercio y no se puede hacer una suposición directa sobre los individuos a partir de estos.

# pon eval = T para visualizar la imagen
# asegúrate de que la imagen y este documento están en la misma carpeta
knitr::include_graphics("aadd_unit2.png")

Actividad 2

En esta actividad utilizaremos el marco de datos eu_ideology_scores.xlsx. Para ello lo importaremos con la función readxl() y le daremos el nombre de euis.

#Recuerda que todos los chunks están en eval = F, para activarlos tienes que cambiar a eval = T
library(readxl)
euis <- read_xlsx("eu_ideology_scores.xlsx")
  1. En primer lugar, haz una exploración general de los datos con las funciones que ya conoces, identificando el número de observaciones, variables, unidad de observación, etc.
euis dim(euis)/ names(euis)/ head(euis)/ summary(euis)

El número de observaciones es 495, mientras que el de variables es 10. Las variables se muestran con la función names y son las siguientes; “country_name” “region_name” “party_name” “party_abbreviation”“election_year_regional”“elec_date_reg”“election_year_national_previous” “elec_date_nat”“eu” “dum_eu”. La unidad de observación son los partidos políticos de los diferentes países europeos.

  1. Con unique(), examina cuántos países diferentes hay.
euis unique_countries <- unique(euis$country_name)

Hay 7 países diferentes en la observación. Bélgica, Francia, Alemania, Italia, España, Suecia y Reino Unido.

  1. Escribe el código que te permita observar qué observación / observaciones es “Euskal Herria Bildu”.
euis bildu_data <- filter(euis, party_name == "Euskal Herria Bildu")

Usando este código obtenemos que hay 2 observaciones de este partido.

  1. Cambia “Social Democratic and Labour Party” por “Social Democratic & Labour Party”.
euis euis <- euis %>%
  mutate(party_name = ifelse(party_name == "Social Democratic and Labour Party", 
                             "Social Democratic & Labour Party", 
                             party_name)) /// verificar: unique(euis$party_name)

Para cambiarlo usas el primer código que he mostrado. Y para verificar el mimso, usas el siguiente código que he proporcionado.

  1. La variable election_year_regional computa el año en que se produjeron elecciones regionales. No obstante, lo que queremos crear es una nueva variable que se llame dif y que calcule la diferencia de años con el actualizado, de manera que si unas elecciones se produjeron en 1995 y estamos en 2024, el resultado sea 29 (2024 - 1995).
euis euis <- euis %>%
  mutate(dif = 2024 - election_year_regional)/// Verificamos también con head(euis)

Utilizamos el código que muestro arriba y comprobamos simplemente mirando el environment que aparece una variable más o con la función head.

  1. Reduce los datos, de manera que conserves las observaciones de Cataluña que tuvieron elecciones regionales más tarde de 2010.
euis catalunya_data <- euis %>%
  filter(region_name == "Catalonia" & election_year_regional > 2010) // head(catalunya_data)

Utilizamos la función filter y seleccionamos los datos más adelante del 2010. Verificamos con función head.

  1. Finalmente, crea una nueva variable decade a partir de los valores de la variable election_year_national_previous, de manera que observes sus valores por décadas. Es decir, en lugar de 1971 debería verse el valor “1970s”, en lugar de 1981 el valor “1980s”, etc.
euis euis <- euis %>%
  mutate(decade = paste0(floor(election_year_national_previous / 10) * 10, "s")) // head(euis)

Utilizamos la función mutate para modificar los valores, dividimos el año entre 10 y volvemos a multiplocar por 10 para darnos el inicio de la década.Utilizamos también la función floor, porque de primeras no la utilizé y algunos datos salian erróneos o confusos, es decir, lo he utilizado para garantizar que todos las décadas son correctas, de otra forma me aparecía años 80 en décadas diferentes y así. Paste0 se usa para que la letra ’s de las décadas, como pedía el enunciado, apareciese al final.(1970’s). En el environment nos aparece la variable nueva.

Actividad 3: The War Of The Five Kings

En esta sección utilizaremos el sistema pipe (%>% o |>) y las funciones del paquete dplyr (filter, select, mutate, arrange). Y lo aplicaremos a la base de datos The War Of The Five Kings, inspirada en la popular serie Game of Thrones.

got <- tibble(read.csv("https://github.com/chrisalbon/war_of_the_five_kings_dataset/raw/master/5kings_battles_v1.csv"))
  1. En primer lugar, vamos a reducir los datos, de manera que solo conservemos los datos que nos interesan. Primero deberás visualizar los datos para hacerte una idea de su contenido (recomendamos con glimpse()). A continuación, crea un nuevo objeto gotr donde conservemos las siguientes columnas: el nombre de la batalla, el año, el rey atacante y defensor, el tamaño del atacante y el defensor, el resultado y el tipo de la batalla, la localización, la región y si era verano.
gotr glimpse(got)/ gotr <- got %>% 
+     select(name, year, attacker_king, defender_king, attacker_size, defender_size, 
+            attacker_outcome, battle_type, location, region, summer)

Visualizamos los datos con glimpse y nos aparecen en la consola. Para crear el objeto gotr cargamos el paquete dplyr y utilizamos función que sale arriba.

  1. Filtra los datos de gotr para que se vean solo las batallas donde Stannis Baratheon era el rey atacante.
gotr stannis_battles <- gotr %>% 
  filter(attacker_king == "Stannis Baratheon")

Le ponemos de nombre stannis_battles, por ejemplo, y utilizamos la función filter para ver cuando fue rey atacante.

  1. Filtra los datos para que se vean solo las batallas donde Stannis Baratheon era el rey atacante y la batalla fue en invierno.
gotr stannis_winter_battles <- gotr %>% 
  filter(attacker_king == "Stannis Baratheon" & summer == 0)

La función es la misma. Esta vez le llamamos winter_battles y hemos de añadir la variable de que sea en invierno la batalla.

  1. Copia el código anterior y crea una nueva pipe, donde pongas los datos de tamaño del atacante y tamaño del defensor en miles.
gotr stannis_winter_battles <- gotr |>
  filter(attacker_king == "Stannis Baratheon" & summer == 0) |>
  mutate(attacker_size = attacker_size / 1000, 
         defender_size = defender_size / 1000)

Para los tamaños del defensor, usamos el pipe, la función mutate y al ser en miles dividimos los datos de atacantes y defensores entre mil.

  1. Copia el código anterior y crea una nueva pipe, donde ordenes los datos por tamaño del ejército defensor.
gotr stannis_winter_battles <- gotr |>
  filter(attacker_king == "Stannis Baratheon" & summer == 0) |>
  mutate(attacker_size = attacker_size / 1000, 
         defender_size = defender_size / 1000) |>
  arrange(defender_size)

Copiamos la función anterior y agregamos con la función arrange la variable del ejército defensor, de menor a mayor

  1. Entre las batallas que eran una emboscada, ¿cuáles eran los ejércitos defensores con más tropas? Responde a la pregunta utilizando, en este orden, filter(), select() y arrange(). El marco de datos resultante debería mostrar claramente la respuesta.
gotr emboscadas_defensor_tropas <- gotr |>
  filter(battle_type == "ambush") |>
  select(name, defender_king, defender_size, battle_type) |>
  arrange(desc(defender_size))

Lo llamamos emboscadas_defensor_tropas. Filtramos por tipo de batalla ‘’ambush’’ emboscada en inglés. Seleccionamos los datos que queremos, las batallas, los nombres y el tamaño de ejércitos defensores más grandes con select. Finalmente, ordenamos los datos de forma descendente.