library (tidyverse)
library (haven)
library (surveyreader)
metadata <- readxl::read_excel("data-raw/gesis_qb_update.xlsx")
df <- surveyreader:::eb_sample
demography <- create_demography(df, metadata)
summary(demography)
create_trend <- function ( df, metadata, comparative_metadata = FALSE ) {
m <- metadata %>% filter ( spss_name %in% names(df) ) %>%
filter ( sr_trend %in% c(1,3)) %>%
select ( gesis_name, sr_name, spss_name, new_class, na_id, sr_trend) %>%
distinct (spss_name, new_class, .keep_all = TRUE)
main_vars <- m %>% filter ( sr_trend == 1 ) %>%
select ( sr_name ) %>%
unlist(.)
meta_vars <- m %>% filter ( sr_trend == 3 ) %>%
select ( sr_name ) %>%
unlist(.)
all_vars <- c(main_vars, meta_vars)
character_vars <- m %>%
filter ( new_class == "character") %>%
select ( sr_name ) %>%
unlist(.)
factor_vars <- m %>%
filter ( new_class == "factor") %>%
select ( sr_name ) %>%
unlist(.)
rescale_time_frequency_use_vars <- m %>%
filter ( new_class == "rescale_time_frequency_use") %>%
select ( sr_name ) %>%
unlist(.)
rescale_time_frequency_3_vars <- m %>%
filter ( new_class == "rescale_time_frequency_3") %>%
select ( sr_name ) %>%
unlist(.)
keep_numeric_vars <- m %>%
filter ( new_class == "keep_numeric") %>%
select ( sr_name ) %>%
unlist(.)
difficulty_vars <- m %>%
filter ( new_class == "rescale_difficulty") %>%
select ( sr_name, na_id ) %>%
unlist(.)
agreement_4_vars <- m %>%
filter ( new_class == "rescale_agreement_4") %>%
select ( sr_name, na_id )
political_interest_vars <- m %>%
filter ( new_class == "rescale_pol_interest") %>%
select ( sr_name ) %>%
unlist(.)
alphanumeric_vars <- m %>%
filter ( new_class == "rescale_alphanumeric_en") %>%
select ( sr_name ) %>%
unlist(.)
num_to_chr_vars <- m %>%
filter ( new_class == "num_to_chr") %>%
select ( sr_name ) %>%
unlist(.)
satisfaction_vars <- m %>%
filter ( new_class == "rescale_satisfaction") %>%
select ( sr_name ) %>%
unlist(.)
trend_eu2020_goals_vars <- m %>%
filter ( new_class == "rescale_eu2020_goals") %>%
select ( sr_name ) %>%
unlist(.)
situation_vars <- m %>%
filter ( new_class == "rescale_situtation") %>%
select ( sr_name ) %>%
unlist(.)
trust_vars <- m %>%
filter ( new_class == "rescale_trust") %>%
select ( sr_name ) %>%
unlist(.)
occupation_vars <- m %>%
filter ( new_class == "rescale_occupation") %>%
select ( sr_name ) %>%
unlist(.)
#haven::print_labels(trend_df$trend_trust_instituton_army)
#rescale_trust ( trend_df$trend_trust_instituton_army)
#head ( trend_df$trend_life_satisfaction)
trend_df <- df %>% select ( one_of(m$spss_name)) %>%
purrr::set_names(., m$sr_name) %>%
mutate_at ( vars(one_of(num_to_chr_vars)),
funs(as.character(.))) %>%
mutate_at ( vars(one_of(character_vars)), haven::as_factor) %>%
mutate_at ( vars(one_of(character_vars)), as.character)
trend_df <- mutate (trend_df,
difficulty_bills = rescale_difficulty (difficulty_bills,
na_labels = "Refusal (SPONT.)",
messages = FALSE))
message ("Rescaled: Difficulty of paying bills.")
trend_df <- mutate (trend_df, gender = code_gender(gender))
message ("Rescoded: gender.")
trend_df <- mutate (trend_df,
marital_status = rescale_marital_status(marital_status))
message("Recoded: marital status")
trend_df <- mutate ( trend_df,
date_interview = rescale_date_interview(date_interview,
return_class = "Date") )
message("Recoded: date of interview to class Date.")
if ( "political_interest_index" %in% names (trend_df)) {
trend_df <- mutate (trend_df,
political_interest_index = rescale_political_interest(
column =political_interest_index ,
na_labels = "DK (4 in d71_1, d71_2 and d71_3)"))
message("Rescaled political interest index.")
} else {
message("No political interest index variable was found.")
}
if (length(num_to_chr_vars)>0) {
trend_df <- mutate_at (trend_df,
vars(one_of(num_to_chr_vars)),
funs(as.character(.)))
message("Numeric to character conversions.")
}
if ( length(satisfaction_vars)>0) {
trend_df <-mutate_at ( trend_df,
vars(one_of(satisfaction_vars)),
funs(rescale_satisfaction(column =.)))
message("Rescaled: life satisfaction variables.")
}
if ( length(situation_vars) >0) {
trend_df <- mutate_at ( vars(one_of(situation_vars)),
funs(rescale_situtation(column =.)))
message("Rescaled: situtation assessment trend questions.")
}
if ( length(trust_vars)>0) {
trend_df <- mutate_at ( trend_df,
vars(one_of(trust_vars)),
funs(rescale_trust(column =.)))
message("Rescaled: trust in institutions trend questions.")
}
if ( length(political_interest_vars) > 0 ) {
trend_df <- mutate_at ( trend_df,
vars(one_of(political_interest_vars)),
funs( surveyreader::rescale_political_interest(
column =.,
na_labels = "DK (4 in d71_1, d71_2 and d71_3)")))
message("Rescaled: political interest trend questions.")
}
if ( length(agreement_4_vars$sr_name) > 0 ) {
trend_df <- mutate_at ( trend_df,
vars(one_of (agreement_4_vars$sr_name)),
funs(surveyreader::rescale_agreement_4(
column =.,
na_labels = c("DK")) ))
message("Rescaled: 4-level agreement categories.")
}
if ( length(trend_eu2020_goals_vars) > 0 ) {
trend_df <- mutate_at ( trend_df,
vars(one_of( trend_eu2020_goals_vars)),
surveyreader::rescale_eu2020_goals)
message("Rescaled: EU2020 goal trend questions.")
}
if ( length(rescale_time_frequency_use_vars)>0) {
mutate_at ( trend_df,
vars(one_of( rescale_time_frequency_use_vars)),
surveyreader::rescale_time_frequency_use)
message("Rescaled time frequencies of using things variables.")
}
if ( length(rescale_time_frequency_3_vars)>0) {
mutate_at ( trend_df,
vars(one_of( rescale_time_frequency_use_vars)),
surveyreader::rescale_time_frequency_3)
message("Rescaled 3-level time frequencies.")
}
if ( length(occupation_vars )>0) {
mutate_at ( trend_df,
vars(one_of( occupation_vars )),
surveyreader::rescale_occupation)
message("Rescaled occupation (last job) variables. ")
}
if ( length(alphanumeric_vars )>0) {
mutate_at ( trend_df,
vars(one_of( alphanumeric_vars )),
surveyreader::rescale_alphanumeric_en)
message("Recoded alphanumeric variables, i.e. 'twenty', etc..")
}
if ( length(keep_numeric_vars )>0) {
mutate_at ( trend_df,
vars(one_of( keep_numeric_vars )),
surveyreader::keep_numeric)
message("Recoded numeric variables with units or other string.")
}
main <- select(trend_df, uniqid, one_of(main_vars))
summary (main)
clean_df <- cbind(
select (trend_df, uniqid),
select (trend_df, one_of(main_vars), -uniqid),
select (trend_df, one_of(meta_vars), -uniqid))
#clean_df[] <- lapply(clean_df, unclass)
#summary (clean_df)
return(clean_df)
}
#df <- sample_n(imported_spss, 120)
#print_labels(df$qb3.1)
#trend_df <- create_trend (df, metadata)
#trends <- create_trend(imported_spss, metadata)
#summary (trend_df)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.