Dowiedzieliśmy się dotychczas, że wiek, wykształcenie i pochodzenie etniczne są ważnymi czynnikami w zrozumieniu sposobu, w jaki ludzie głosowali w referendum w sprawie Brexitu. Młodsze osoby z wyższym wykształceniem kojarzone są z głosami za pozostaniem w UE. Starsi biali ludzie są kojarzeni z głosami za opuszczeniem UE. Możemy teraz wykorzystać tę wiedzę, aby stworzyć bardziej zwięzły zestaw danych, który obejmuje tę wiedzę. Najpierw dodajemy odpowiednie zmienne, a następnie usuwamy nieistotne zmienne. Nasze nowe istotne zmienne to dwie grupy wiekowe (dorośli poniżej i powyżej 45 lat), dwie grupy etniczne (biali i nie-biali) oraz dwie grupy edukacji (wysoki i niski poziom wykształcenia):
data$Age_18to44 <- (
data$Age_18to19 +
data$Age_20to24 +
data$Age_25to29 +
data$Age_30to44
)
data$Age_45plus <- (
data$Age_45to59 +
data$Age_60to64 +
data$Age_65to74 +
data$Age_75to84 +
data$Age_85to89 +
data$Age_90plus
)
data$NonWhite <- (
data$Black +
data$Asian +
data$Indian +
data$Pakistani
)
data$HighEducationLevel <- data$L4Quals_plus
data$LowEducationLevel1 <- data$oQuals
Teraz usuwamy stare zmienne, które były używane do tworzenia naszych nowo dodanych zmiennych. Aby to zrobić bez konieczności ręcznego określania pełnej listy, wykorzystując fakt, że wszystkie zawierają słowo „Age”, tworzymy wektor logiczny age_variables który zawiera wartość TRUE dla tych zmiennych, które zawierają słowo „Age” wewnątrz (w przeciwnym razie FALSE) i upewnij się, że zachowujemy nowo utworzone zmienne Age_18to44 i Age_45plus. Pozostałe poziomy etniczności i wykształcenia usuwamy ręcznie:
column_names <- colnames(data)
new_variables <- !logical(length(columns_names))
new_variables <- setNames(new_variables, colimn_names)
age_variables <- sapply(column_names, function(x) grepl(„Age”, x))
new_variables [age_variables= <- FALSe
new_variables [[„AdultMeanAge”]] <- TRUE
new_variables [[„Age_18to44”]] <- TRUE
new_variables [[„Age_45plus”]] <- TRUE
new_variables [[„Black”]] <- FALSE
new_variables [[„Asian”]] <- FALSE
new_variables [[„India”]] <- FALSE
new_variables [[„Pakistani”]] <- FALSE
new_variables [[„NoQuals”]] <- FALSE
new_variables [[„L4Quals_plus”]] <- FALSE
new_variables [[„OwnedOutright”]] <- FALSE
new_variables [[„MultiDeprived”]] <- FALSE
Zapisujemy utworzony obiekt data_adjusted, wybierając nowe kolumny, tworzymy nowe zmienne numeryczne dla nowej struktury danych i zapisujemy go jako plik CSV:
data_adjusted <- data[, new_variables]
numerical_variables_adjusted <- sapply(data_adjusted, is.numeric)
write.csv(data_adjusted, file = „data_brexit_referendum_adjusted.csv”)