Untitled
unknown
plain_text
a month ago
3.9 kB
10
Indexable
Never
```{r} #| echo: false #| message: false library(tidyverse) library(dplyr) data <- read.csv("v.dem.full.others.csv") # 1: subset the data for european countries european_countries <- subset(data, e_regiongeo %in% c(1, 2, 3, 4)) # 2: filter for the interwar period - honestly there isn't much point in this because for the table you need more years but idk interwar_period <- subset(european_countries, year >= 1919 & year <= 1939) # 3: stable autocracies: all that are not 1 stable_autocracies <- interwar_period |> group_by(country_name) |> filter(all(e_boix_regime != 1)) |> distinct(country_name) # 4: stable democracies: all that are 1 stable_democracies <- interwar_period |> group_by(country_name) |> filter(all(e_boix_regime == 1)) |> distinct(country_name) # 5: democracies that collapsed, so we have to check those who went from 1 to 0 using lag. lag is used to retrieve the value of a variable from a previous row within a group, so it basically checks for change. later is gonna ask for year of breakdown so it's easy to do it here. default is 0 because it works and if I write 1 it doesn't and honestly i am way to tired to try to figure out why. democratic_breakdown <- interwar_period |> arrange(country_name, year) |> group_by(country_name) |> filter(e_boix_regime == 0 & lag(e_boix_regime, default = 0) == 1) |> summarize(year_of_breakdown = min(year)) # 5: new variable within the data of eu countries data_newvariable <- european_countries |> mutate(new_variable = case_when( country_name %in% stable_autocracies$country_name ~ 0, country_name %in% stable_democracies$country_name ~ 1, TRUE ~ NA_integer_ )) |> left_join(democratic_breakdown, by = "country_name") |> #this is how i added the years mutate(new_variable = ifelse(!is.na(year_of_breakdown), 2, new_variable)) ``` ```{r} #| echo: false #| warning: false # la fiesta de las libraries library(tidyr) library(knitr) library(kableExtra) # for some countries there wasnt data for the period 1900-1913 so it was returning NaN. I wasnt able to change that in the code below so I added this. I also rounded the numbers custom_mean <- function(x, digits = 3) { if (any(!is.na(x))) { return(as.character(round(mean(as.numeric(x), na.rm = TRUE), digits))) } else { return("No data available") } } # now the funny stuff. first the data for the new variable. results_table <- data_newvariable |> filter(country_name %in% unique(c(stable_autocracies$country_name, stable_democracies$country_name, democratic_breakdown$country_name))) |> group_by(country_name) |> #otherwise it shows a thousand obs. summarize( `Democratic collapse` = ifelse(2 %in% new_variable, "Yes", "No"), #selfexplanatory: if there's 2 yes if there isnt no `Years democratic` = sum(e_boix_regime == 1 & year >= 1919 & year <= 1939, na.rm = TRUE), #sum `Year of democratic\nbreakdown` = ifelse(!is.na(year_of_breakdown), as.character(year_of_breakdown), "-"), #to show either the year or - if there wasnt collapse `Years democratic\n(1860-1913)` = sum(e_boix_regime == 1 & year >= 1860 & year <= 1913, na.rm = TRUE), `Avg value of V-Dem\npolyarchy\n(1900-1913)` = custom_mean(v2x_polyarchy[year >= 1900 & year <= 1913])) |> distinct(country_name, .keep_all = TRUE) |> #so i dont have duplicate columns rename(Country = country_name) # It didnt fit in the page this is how it fits the table horizontally with adjusted formatting and renamed columns kable(results_table, caption = "Variation in the survival of democratic countries during the interwar period", align = "c", format = "latex", booktabs = TRUE, longtable = TRUE) |> kable_styling(latex_options = c("striped", "scale_down")) |> landscape() |> row_spec(0, bold = TRUE) |> column_spec(1:6, width = "2.5cm") #this is to adjust the table to the margins of the page ```