As always, first some prep work before we can work on the exercises: Load the packages & the data we need…
library(tidyverse)
library(sjlabelled)
gp_covid <-
read_csv2("./data/ZA5667_v1-1-0.csv") %>%
set_na(na = c(-99, -77, -33, 98))
across()
to recode the trust variables hzcy044a:hzcy052a
into dichotomized versions. The value 1
should remain, all others should be 0
.
mutate()
function and then use recode()
.
gp_covid <-
gp_covid %>%
mutate(
across(
hzcy044a:hzcy052a,
~recode(
.x,
`5` = 0,
`4` = 0,
`3` = 0,
`2` = 0,
`1` = 1
)
)
)
dplyr
functions, let’s check if the code worked.
glimpse()
to print the output or use View()
to a data tab in RStudio.
gp_covid %>%
select(hzcy044a:hzcy052a) %>%
glimpse()
## Rows: 3,765
## Columns: 9
## $ hzcy044a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, NA, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0,~
## $ hzcy045a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, NA, 0, NA, NA, 0, 0, NA, NA, 0, NA, ~
## $ hzcy046a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, NA, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0,~
## $ hzcy047a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0, ~
## $ hzcy048a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 1, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0, ~
## $ hzcy049a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 1, 0, NA, 0, 0, NA, NA, 0, NA, NA, NA, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 1,~
## $ hzcy050a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 1, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0, ~
## $ hzcy051a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0, ~
## $ hzcy052a <dbl> NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, 0, NA, 0, 0, NA, NA, 0, NA, 0, NA, 0, 0, 0, 0, 0, 0, 0, 0, NA, NA, 0, NA, 0, ~
median()
function to calculate an aggregated variable of all trust variables per respondent.
c_across()
function. Oh, and don’t forget to ungroup your data at the end (of your pipe).
gp_covid <-
gp_covid %>%
rowwise() %>% #<<
mutate(
median_trust =
median(
c_across(hzcy044a:hzcy052a),
na.rm = TRUE
)
) %>%
ungroup()
table(gp_covid$median_trust)
##
## 0 0.5 1
## 3115 3 42