2.3. Distribution of response and nonresponse within incentive groups (Table 3)


Introduction

Table 3 adds the option of nonresponse since the composition of the sampling frames differ across incentive groups.

Education

# Table with absolute frequencies for response
edu_rr <- WaveOne %>%
  filter(is.na(PUMA1)==FALSE) %>% 
  filter(valid==1) %>%
  with(table(edu,Pumavers)) 


# Table with absolute frequencies for nonresponse
edu_nr <- WaveOne %>%
  filter(is.na(PUMA1)==FALSE) %>% 
  filter(valid==0) %>%
  with(table(edu,Pumavers))

# Combine tables
for (i in 1:ncol(edu_rr)){
  sum_perc <- cbind(edu_nr[,i],edu_rr[,i]) %>%
      prop.table(1)
  if (i==1){
    edu_tab <- data.frame(
     bro_nr = paste0(edu_nr[,i],
                         " (", 
                         scales::percent(sum_perc[,1], accuracy = 0.1), 
                         ")"),
     bro_rr = paste0(edu_rr[,i],
                         " (", 
                         scales::percent(sum_perc[,2], accuracy = 0.1), 
                         ")")
    )
  } else {
    j <- (i*2)-1
   edu_tab[,j] <- paste0(edu_nr[,i],
                         " (", 
                         scales::percent(sum_perc[,1], accuracy = 0.1), 
                         ")")
   edu_tab[,j+1] <- paste0(edu_rr[,i],
                         " (", 
                         scales::percent(sum_perc[,2], accuracy = 0.1), 
                         ")")
  }
}

# Print dataframe
cbind(levels(WaveOne$edu),
      edu_tab) %>%
  setNames(c("Labels",
             rep(c("Nonresponse","Response"),4))) %>%
  kable("html") %>%
  kable_styling("striped") %>%
  column_spec(1, width = "30em") %>%
  add_header_above(c(" " = 1, 
                     "Brochure" = 2, 
                     "2€ token" = 2, 
                     "5€ token" = 2,
                     "Voucher" = 2))
Brochure
2€ token
5€ token
Voucher
Labels Nonresponse Response Nonresponse Response Nonresponse Response Nonresponse Response
Max. compulsory schooling 127 (98.4%) 2 (1.6%) 132 (94.3%) 8 (5.7%) 147 (91.9%) 13 (8.1%) 131 (91.6%) 12 (8.4%)
Apprenticeship 361 (89.8%) 41 (10.2%) 314 (80.7%) 75 (19.3%) 308 (80.6%) 74 (19.4%) 318 (79.1%) 84 (20.9%)
Vocational or commercial school 109 (82.0%) 24 (18.0%) 92 (83.6%) 18 (16.4%) 85 (66.4%) 43 (33.6%) 81 (79.4%) 21 (20.6%)
Matura 146 (76.0%) 46 (24.0%) 89 (56.3%) 69 (43.7%) 99 (61.1%) 63 (38.9%) 83 (58.5%) 59 (41.5%)
Higher degree after Matura 18 (64.3%) 10 (35.7%) 15 (53.6%) 13 (46.4%) 8 (40.0%) 12 (60.0%) 18 (60.0%) 12 (40.0%)
University degree 87 (65.4%) 46 (34.6%) 77 (52.0%) 71 (48.0%) 67 (50.8%) 65 (49.2%) 63 (47.7%) 69 (52.3%)

Occupational position

# Table with absolute frequencies for response
job_rr <- WaveOne %>%
  filter(is.na(PUMA1)==FALSE) %>% 
  filter(valid==1) %>%
  with(table(job,Pumavers)) 


# Table with absolute frequencies for nonresponse
job_nr <- WaveOne %>%
  filter(is.na(PUMA1)==FALSE) %>% 
  filter(valid==0) %>%
  with(table(job,Pumavers))

# Combine tables
for (i in 1:ncol(job_rr)){
  sum_perc <- cbind(job_nr[,i],job_rr[,i]) %>%
      prop.table(1)
  if (i==1){
    job_tab <- data.frame(
     bro_nr = paste0(job_nr[,i],
                         " (", 
                         scales::percent(sum_perc[,1], accuracy = 0.1), 
                         ")"),
     bro_rr = paste0(job_rr[,i],
                         " (", 
                         scales::percent(sum_perc[,2], accuracy = 0.1), 
                         ")")
    )
  } else {
    j <- (i*2)-1
   job_tab[,j] <- paste0(job_nr[,i],
                         " (", 
                         scales::percent(sum_perc[,1], accuracy = 0.1), 
                         ")")
   job_tab[,j+1] <- paste0(job_rr[,i],
                         " (", 
                         scales::percent(sum_perc[,2], accuracy = 0.1), 
                         ")")
  }
}

# Print dataframe
cbind(levels(WaveOne$job),
      job_tab) %>%
  setNames(c("Labels",
             rep(c("Nonresponse","Response"),4))) %>%
  kable("html") %>%
  kable_styling("striped") %>%
  column_spec(1, width = "30em") %>%
  add_header_above(c(" " = 1, 
                     "Brochure" = 2, 
                     "2€ token" = 2, 
                     "5€ token" = 2,
                     "Voucher" = 2))
Brochure
2€ token
5€ token
Voucher
Labels Nonresponse Response Nonresponse Response Nonresponse Response Nonresponse Response
Clerk 292 (77.2%) 86 (22.8%) 233 (65.4%) 123 (34.6%) 229 (63.3%) 133 (36.7%) 211 (62.4%) 127 (37.6%)
Worker 145 (96.7%) 5 (3.3%) 137 (84.6%) 25 (15.4%) 128 (86.5%) 20 (13.5%) 128 (86.5%) 20 (13.5%)
Civil servant 33 (63.5%) 19 (36.5%) 27 (50.9%) 26 (49.1%) 20 (47.6%) 22 (52.4%) 21 (52.5%) 19 (47.5%)
Contract agent 40 (78.4%) 11 (21.6%) 30 (69.8%) 13 (30.2%) 13 (48.1%) 14 (51.9%) 25 (50.0%) 25 (50.0%)
Pensioner 185 (85.3%) 32 (14.7%) 175 (81.8%) 39 (18.2%) 199 (85.0%) 35 (15.0%) 185 (85.3%) 32 (14.7%)
Unemployed (inactive) 140 (85.4%) 24 (14.6%) 107 (75.9%) 34 (24.1%) 120 (74.1%) 42 (25.9%) 119 (74.8%) 40 (25.2%)
Self-employed 83 (85.6%) 14 (14.4%) 71 (76.3%) 22 (23.7%) 59 (67.8%) 28 (32.2%) 68 (77.3%) 20 (22.7%)
Previous
Next