There is one caveat with this function that we are using from the
recode is also in the
dplyr package so R gets confused if you just type in
recode on its own; it doesn’t know which package you’re using.
So, you must write
car::recode(). This placates the R gods and they are clear which package to use.
It is useful for all other times you want to explicitly tell R which package you want it to use to avoid any confusion. Just type the package name followed by two :: colons and a list of all the functions in the package drops down. So really, it can also be useful for exploring new packages you’ve installed and loaded!
First, subset the dataframe, so we are only looking at countries in the year 1990.
data_90 <- data[which(data$year==1990),]
Next look at a frequency of each way that regimes around the world ended.
To understand these numbers, we look at the codebook.
We want to make a new binary variable to indicate whether a coup occurred in a country in 1990 or not.
To do this we use the
First we can make a numeric variable. So in the brackets, we indicate our dataframe at the start.
Next bit is important, we put all the original and new variables in ” ” inverted commas.
Also important that we separate each level of the new variable with a ; semicolon.
The punctuation marks in this function are a bit fussy and difficult but it is important.
data_90$coup_numeric <- car::recode(data_90$regime_end, "0:2 = 1; 3:13=0; NA=0")
Alternatively, we can recode the variable as a string output when we choose to make the new variable values in ‘ apostrophe marks’.
data_90$coup_string <- car::recode(data_90$regime_end, "0:2 = 'coup'; 3:13= 'no coup'; NA='no coup'")
If you want to convert a continuous variable to discrete factors, we can go to our trusty mutate() function in the
dplyr package. And within mutate() we use another function:
So instead of recoding binary variables or factor variables . . . we can turn a numeric variable into a discrete variable with
We specify with the
breaks argument to indicate where we want to divide the variable and then we can label the factors with the
data_90 <- data_90 %>% dplyr::mutate(instability_discrete = cut(instability_continuous, breaks=c(-Inf, 0.3, 0.7, Inf), labels=c("low_instability", "mid_instability", "high_instability")))