Split-Half Reliability

Split-half reliability is an important metric for survey reliability. It measures the consistency of results between two halves of the same survey, often used to assess internal reliability of the same question set measuring related concepts. It’s determined by the so-called Spearman-Brown prophecy formula:

\[\begin{equation*} r_{sb} = \frac{2r_{12}}{1 + r_{12}}, \end{equation*}\]

where \(r_{12}\) is the correlation between the two halves. \(r_{12}\) \(\geq\) 0.7 is generally acceptable for social survey research.

Let’s walk through an example using simulated data.

# Simulate an underlying latent trait (e.g., attitude)
set.seed(123) # For reproducibility
latent <- rnorm(200)

# Generate 10 Likert-scale items (1–5), all correlated with latent
survey_data <- data.frame(
  ID = 1:200,
  Q1  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q2  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q3  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q4  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q5  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q6  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q7  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q8  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q9  = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5),
  Q10 = pmin(pmax(round(latent + rnorm(200, 0, 0.5) + 3), 1), 5)
)


# Split questions into two halves (odd vs. even)
half1 <- rowMeans(survey_data[, c("Q1", "Q3", "Q5", "Q7", "Q9")])
half2 <- rowMeans(survey_data[, c("Q2", "Q4", "Q6", "Q8", "Q10")])

# Compute correlation between two halves of the question set using cor()
r12 <- cor(half1, half2)
r12
## [1] 0.9273305
# Apply Spearman-Brown correction
split_half_reliability <- (2 * r12) / (1 + r12)
split_half_reliability
## [1] 0.9622952
# The result
cat("Split-half correlation:", round(r12, 3), 
    "\nSpearman-Brown reliability:", round(split_half_reliability, 3))
## Split-half correlation: 0.927 
## Spearman-Brown reliability: 0.962
# Both statistics are pretty high, indicating the two halves of the same question set measure highly correlated construct.

Internal Consistency Reliability

Internal consistency reliability measures the degree to which items within a survey that are intended to measure the same concept yield consistent responses. A commonly used indicator is Cronbach’s \(\alpha\):

\[\begin{equation*} \alpha = \frac{N\bar{\rho}}{1 + \bar{\rho}(N - 1)}, \end{equation*}\]

where \(N\) is the number of questions, \(\bar{\rho}\) is the mean of pairwise correlation between responses to any two questions (say Q2 and Q5). \(\alpha\) is bounded between 0 and 1. A value of 0.7 or higher is generally considered acceptable, suggesting survey questions are correlated and consistently measure the same underlying construct, while values above 0.9 are often seen as excellent. However, an \(\alpha\) that is too high might mean some questions are redundant since \(\alpha\) naturally increases with \(N\).

Let’s work on this metric using the same data generated earlier and borrow the built-in \(\textsf{alpha}()\) function from the \(\textsf{psych}\) package.

# install.packages("psych")  # Uncomment if you haven't installed this package
library(psych)

# First, remove the ID column
survey_data <- survey_data[, -c(1)]

# Apply alpha() on the first 4 columns of the survey_data
alpha(survey_data[, 1:4], check.keys=TRUE)  # 1:4 means subsetting data columns 1 to 4
## 
## Reliability analysis   
## Call: alpha(x = survey_data[, 1:4], check.keys = TRUE)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N   ase mean  sd median_r
##        0.9       0.9    0.88       0.7 9.4 0.011    3 0.9     0.71
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.88   0.9  0.92
## Duhachek  0.88   0.9  0.92
## 
##  Reliability if an item is dropped:
##    raw_alpha std.alpha G6(smc) average_r S/N alpha se   var.r med.r
## Q1      0.87      0.87    0.81      0.68 6.5    0.017 0.00100  0.69
## Q2      0.87      0.87    0.83      0.70 7.0    0.016 0.00192  0.72
## Q3      0.88      0.88    0.83      0.71 7.2    0.015 0.00022  0.71
## Q4      0.88      0.88    0.83      0.72 7.5    0.014 0.00011  0.71
## 
##  Item statistics 
##      n raw.r std.r r.cor r.drop mean   sd
## Q1 200  0.89  0.90  0.85   0.81    3 0.97
## Q2 200  0.88  0.88  0.83   0.79    3 1.01
## Q3 200  0.88  0.88  0.82   0.77    3 1.05
## Q4 200  0.87  0.87  0.80   0.76    3 1.07
## 
## Non missing response frequency for each item
##       1    2    3    4    5 miss
## Q1 0.06 0.23 0.44 0.21 0.07    0
## Q2 0.06 0.26 0.38 0.23 0.07    0
## Q3 0.07 0.28 0.33 0.24 0.07    0
## Q4 0.09 0.20 0.42 0.19 0.10    0
# raw_alpha is 0.9

# Apply alpha() on all columns of the survey_data
alpha(survey_data, check.keys=TRUE)   # Since we include all data columns in survey_data, so no subsetting is necessary
## 
## Reliability analysis   
## Call: alpha(x = survey_data, check.keys = TRUE)
## 
##   raw_alpha std.alpha G6(smc) average_r S/N   ase mean   sd median_r
##       0.96      0.96    0.96      0.72  26 0.004    3 0.91     0.72
## 
##     95% confidence boundaries 
##          lower alpha upper
## Feldt     0.95  0.96  0.97
## Duhachek  0.95  0.96  0.97
## 
##  Reliability if an item is dropped:
##     raw_alpha std.alpha G6(smc) average_r S/N alpha se   var.r med.r
## Q1       0.96      0.96    0.95      0.72  23   0.0045 0.00065  0.72
## Q2       0.96      0.96    0.95      0.72  23   0.0045 0.00061  0.72
## Q3       0.96      0.96    0.96      0.72  23   0.0044 0.00058  0.72
## Q4       0.96      0.96    0.96      0.72  24   0.0043 0.00040  0.72
## Q5       0.96      0.96    0.95      0.72  23   0.0045 0.00065  0.72
## Q6       0.96      0.96    0.95      0.71  22   0.0046 0.00053  0.71
## Q7       0.96      0.96    0.95      0.72  23   0.0044 0.00069  0.72
## Q8       0.96      0.96    0.96      0.72  23   0.0044 0.00065  0.72
## Q9       0.96      0.96    0.95      0.72  23   0.0044 0.00071  0.72
## Q10      0.96      0.96    0.95      0.72  23   0.0045 0.00059  0.72
## 
##  Item statistics 
##       n raw.r std.r r.cor r.drop mean   sd
## Q1  200  0.86  0.87  0.85   0.83  3.0 0.97
## Q2  200  0.87  0.87  0.85   0.84  3.0 1.01
## Q3  200  0.85  0.85  0.83   0.82  3.0 1.05
## Q4  200  0.84  0.84  0.82   0.80  3.0 1.07
## Q5  200  0.87  0.87  0.85   0.83  3.0 1.10
## Q6  200  0.89  0.89  0.88   0.86  3.0 1.01
## Q7  200  0.86  0.86  0.84   0.83  3.0 1.08
## Q8  200  0.86  0.86  0.84   0.82  3.0 1.10
## Q9  200  0.86  0.86  0.84   0.83  3.0 1.06
## Q10 200  0.88  0.88  0.86   0.85  2.9 1.04
## 
## Non missing response frequency for each item
##        1    2    3    4    5 miss
## Q1  0.06 0.23 0.44 0.21 0.07    0
## Q2  0.06 0.26 0.38 0.23 0.07    0
## Q3  0.07 0.28 0.33 0.24 0.07    0
## Q4  0.09 0.20 0.42 0.19 0.10    0
## Q5  0.07 0.26 0.34 0.21 0.10    0
## Q6  0.06 0.29 0.35 0.24 0.06    0
## Q7  0.07 0.29 0.32 0.22 0.10    0
## Q8  0.08 0.26 0.31 0.25 0.10    0
## Q9  0.06 0.28 0.34 0.23 0.10    0
## Q10 0.09 0.24 0.40 0.20 0.07    0
# raw_alpha jumps to 0.96

# Have you noticed the change in alpha? Alpha level increases as the number of items (questions) being compared increases.


# For Stata users, the Cronbach's alpha equivalent is just alpha v1 v2 v3 ...

Assignment 2 questions

Let’s assess the split-half reliability and internal consistency reliability of Asian Barometer Survey (ABS) Wave 5 data.

# install.packages("haven")  # Uncomment if you haven't installed this package
library(haven)

# Load ABS Wave 5 data (stored in Stata dta format, so we need to use read_dta() to load it)
ABS_W5 <- read_dta(url("https://www.dropbox.com/scl/fi/nprrmza405v7itm5q0ts2/W5_Taiwan_coreQrelease_20190805.dta?rlkey=dy8u4fn5hly2uojre6eu6lxjd&st=ikbv5qik&dl=1"))

# Inspect data
names(ABS_W5)
##   [1] "Country"  "Year"     "Month"    "IDnumber" "Region"   "Level"   
##   [7] "Q1"       "Q2"       "Q3"       "Q4"       "Q5"       "Q6"      
##  [13] "Q7"       "Q8"       "Q9"       "Q10"      "Q11"      "Q12"     
##  [19] "Q13"      "Q14"      "Q15"      "Q16"      "Q17"      "Q18"     
##  [25] "Q19"      "Q20"      "Q21"      "Q22"      "Q23"      "Q24"     
##  [31] "Q25"      "Q26"      "Q27"      "Q28"      "Q29"      "Q30"     
##  [37] "Q31"      "Q32"      "Q33"      "Q34"      "Q34a"     "Q35"     
##  [43] "Q36"      "Q37"      "Q38"      "Q39"      "Q40"      "Q41"     
##  [49] "Q42"      "Q43"      "Q44"      "Q45"      "Q46"      "Q47"     
##  [55] "Q48"      "Q49"      "Q50"      "Q51a"     "Q51b"     "Q51c"    
##  [61] "Q51d"     "Q52"      "Q53"      "Q54"      "Q55"      "Q56"     
##  [67] "Q57"      "Q58"      "Q59"      "Q60"      "Q61"      "Q62"     
##  [73] "Q63"      "Q64"      "Q65"      "Q66"      "Q67"      "Q68"     
##  [79] "Q69"      "Q70"      "Q71"      "Q72"      "Q73"      "Q74"     
##  [85] "Q75"      "Q76"      "Q77"      "Q78"      "Q79"      "Q80"     
##  [91] "Q81"      "Q82"      "Q82a"     "Q83"      "Q83a"     "Q84"     
##  [97] "Q84a"     "Q85"      "Q85a"     "Q86"      "Q87"      "Q88"     
## [103] "Q89"      "Q90"      "Q91"      "Q92"      "Q93"      "Q94"     
## [109] "Q95"      "Q96"      "Q97"      "Q98"      "Q99"      "Q100"    
## [115] "Q101"     "Q102"     "Q103"     "Q104"     "Q105"     "Q106"    
## [121] "Q107"     "Q108"     "Q109"     "Q110"     "Q111"     "Q112"    
## [127] "Q113"     "Q114"     "Q115"     "Q116"     "Q117"     "Q118"    
## [133] "Q119"     "Q120"     "Q121"     "Q122"     "Q123"     "Q124"    
## [139] "Q125"     "Q126"     "Q127"     "Q127a_1"  "Q127a_2"  "Q127a_3" 
## [145] "Q128"     "Q129"     "Q130"     "Q131"     "Q132"     "Q133"    
## [151] "Q134"     "Q135"     "Q136"     "Q137"     "Q138"     "Q139"    
## [157] "Q140"     "Q141"     "Q142"     "Q143"     "Q144"     "Q145"    
## [163] "Q146"     "Q147"     "Q148"     "Q149"     "Q150"     "Q151"    
## [169] "Q152"     "Q153"     "Q154"     "Q155"     "Q156"     "Q156a"   
## [175] "Q157"     "Q157a"    "Q158"     "Q159"     "Q160A"    "Q160B"   
## [181] "Q160C"    "Q160D"    "Q161"     "Q162"     "Q163"     "Q164"    
## [187] "Q165"     "Q166"     "Q167"     "Q168"     "Q169"     "Q170"    
## [193] "Q171"     "Q172"     "Q173"     "Q174"     "Q175"     "Q176"    
## [199] "Q177"     "Q178"     "Q179"     "Q180"     "Q181"     "Q182"    
## [205] "Q183"     "Q184"     "Q185"     "Se2"      "Se3"      "Se3_1"   
## [211] "Se4"      "Se5"      "Se5a"     "Se6"      "Se7"      "Se7a"    
## [217] "Se8a"     "Se8b"     "Se9"      "Se9a"     "Se9b"     "Se9c"    
## [223] "Se9c_2"   "Se9c_3"   "Se9c_4"   "Se9d"     "Se9e"     "Se10"    
## [229] "Se10_1"   "Se10a"    "Se10b"    "Se10c"    "Se10c_2"  "Se10c_3" 
## [235] "Se10c_4"  "Se10d"    "Se10e"    "Se11"     "Se11_1"   "Se12"    
## [241] "Se13a"    "Se13b"    "Se13c"    "Se14"     "Se14a"    "IR1"     
## [247] "IR2"      "IR2a"     "IR2b"     "IR2c"     "IR3"      "IR3a_1"  
## [253] "IR3a_2"   "IR3a_3"   "IR3a_4"   "IR3a_5"   "IR3a_6"   "IR4"     
## [259] "IR5"      "IR6"      "IR7"      "IR8"      "IR10"     "IR10a"   
## [265] "IR11a"    "IR11b"    "IR11c"    "IR11e"    "IR12"     "IR12A"   
## [271] "IR12B"    "IR12C"    "IR12D"    "IR12E"    "IR12F"    "IR12G"   
## [277] "IR12H"    "IR12I"    "IR12K"    "IR13"     "w_final"
dim(ABS_W5)
## [1] 1259  281
str(ABS_W5)
## tibble [1,259 × 281] (S3: tbl_df/tbl/data.frame)
##  $ Country : chr [1:1259] "7" "7" "7" "7" ...
##   ..- attr(*, "label")= chr "Country code"
##   ..- attr(*, "format.stata")= chr "%1s"
##  $ Year    : num [1:1259] 2018 2019 2019 2019 2019 ...
##   ..- attr(*, "label")= chr "Interview year"
##   ..- attr(*, "format.stata")= chr "%8.0g"
##  $ Month   : num [1:1259] 8 1 1 1 1 8 12 12 12 12 ...
##   ..- attr(*, "label")= chr "Interview month"
##   ..- attr(*, "format.stata")= chr "%8.0g"
##  $ IDnumber: num [1:1259] 1 2 3 4 5 6 7 8 9 10 ...
##   ..- attr(*, "label")= chr "case number"
##   ..- attr(*, "format.stata")= chr "%8.0g"
##  $ Region  : dbl+lbl [1:1259] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
##    ..@ label       : chr "Region"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:6] 701 702 703 704 705 706
##    .. ..- attr(*, "names")= chr [1:6] "Taipei, New Taipei, Keelung" "Taoyuang, Hsinchu, Miaoli" "Taichung, Changhua, Nantou" "Yunlin, Chiayi, Tainan" ...
##  $ Level   : dbl+lbl [1:1259] 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,...
##    ..@ label       : chr "Rural or urban"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:2] 1 2
##    .. ..- attr(*, "names")= chr [1:2] "Rural" "Urban"
##  $ Q1      : dbl+lbl [1:1259] 2, 3, 3, 3, 2, 4, 4, 3, 5, 4, 4, 3, 4, 2, 3, 2, 4, 4,...
##    ..@ label       : chr "1. How would you rate the overll economic condition of our country today?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Very good" "Good" "So-so [not good nor bad]" ...
##  $ Q2      : dbl+lbl [1:1259] 2, 5, 2, 2, 4, 5, 4, 2, 5, 5, 5, 4, 5, 3, 4, 3, 5, 4,...
##    ..@ label       : chr "2. How would you dsecribe the change in the economic condition of our country ov"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Much better" "A little better" "About the same" ...
##  $ Q3      : dbl+lbl [1:1259] 3, 2, 2, 3, 2, 4, 2, 8, 2, 1, 8, 4, 4, 4, 3, 2, 5, 2,...
##    ..@ label       : chr "3. What do you think will be the state of our country's economic condition a few"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Much better" "A little better" "About the same" ...
##  $ Q4      : dbl+lbl [1:1259] 2, 3, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 2, 2, 2, 3,...
##    ..@ label       : chr "4. As for your own family, how do you rate the economic situation of your family"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Very good" "Good" "So-so [not good nor bad]" ...
##  $ Q5      : dbl+lbl [1:1259] 3, 4, 3, 3, 3, 4, 3, 3, 4, 4, 3, 3, 2, 3, 2, 3, 2, 4,...
##    ..@ label       : chr "5. How would you compare the current economic condition of your family with what"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Much better" "A little better" "About the same" ...
##  $ Q6      : dbl+lbl [1:1259] 2, 2, 4, 3, 3, 4, 2, 3, 2, 2, 8, 3, 3, 3, 3, 5, 3, 2,...
##    ..@ label       : chr "6. What do you think the economic situation of your family will be a few years f"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Much better" "A little better" "About the same" ...
##  $ Q7      : dbl+lbl [1:1259] 3, 3, 2, 2, 2, 4, 4, 5, 4, 5, 8, 3, 3, 4, 4, 2, 5, 4,...
##    ..@ label       : chr "7 Trust in the excutive office (president or prime minister)"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q8      : dbl+lbl [1:1259] 4, 5, 4, 2, 4, 4, 4, 5, 1, 5, 4, 4, 4, 6, 3, 3, 6, 3,...
##    ..@ label       : chr "8 The courts"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q9      : dbl+lbl [1:1259] 4, 3, 3, 3, 3, 4, 5, 5, 5, 5, 4, 3, 4, 5, 4, 3, 5, 4,...
##    ..@ label       : chr "9 National government in the capital city"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q10     : dbl+lbl [1:1259] 5, 4, 3, 3, 4, 4, 6, 5, 2, 4, 4, 4, 6, 5, 4, 3, 6, 5,...
##    ..@ label       : chr "10 Political parties[not any specific party]"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q11     : dbl+lbl [1:1259] 5, 2, 2, 2, 3, 4, 6, 5, 2, 3, 4, 4, 6, 5, 4, 3, 6, 4,...
##    ..@ label       : chr "11 Parliament"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q12     : dbl+lbl [1:1259] 3, 3, 2, 2, 3, 2, 5, 3, 1, 3, 4, 3, 3, 4, 4, 2, 4, 3,...
##    ..@ label       : chr "12 Civil service"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q13     : dbl+lbl [1:1259] 2, 3, 2, 3, 3, 3, 3, 8, 1, 4, 8, 2, 3, 3, 3, 5, 6, 3,...
##    ..@ label       : chr "13 The military or armed force"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q14     : dbl+lbl [1:1259] 3, 3, 3, 2, 2, 2, 2, 8, 1, 3, 8, 2, 3, 3, 3, 5, 3, 2,...
##    ..@ label       : chr "14 The police"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q15     : dbl+lbl [1:1259] 3, 3, 2, 2, 2, 3, 1, 6, 6, 3, 8, 2, 3, 4, 4, 3, 3, 3,...
##    ..@ label       : chr "15 Local government"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q16     : dbl+lbl [1:1259] 2, 6, 4, 2, 4, 3, 2, 2, 6, 5, 8, 3, 4, 3, 5, 2, 4, 6,...
##    ..@ label       : chr "16 The election commission"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q17     : dbl+lbl [1:1259] 3, 3, 2, 3, 3, 3, 3, 8, 1, 3, 8, 2, 4, 2, 3, 4, 4, 3,...
##    ..@ label       : chr "17 Non-government organizations or NGOs"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q18     : dbl+lbl [1:1259]  4, 19, 15,  2,  3, 10,  3, 90,  3,  3, 90, 15,  3, 9...
##    ..@ label       : chr "18. Name of the organization you belong to. First"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:26] -1 0 1 2 3 4 5 6 7 8 ...
##    .. ..- attr(*, "names")= chr [1:26] "Missing" "Not applicable" "Political parties" "Residential & community associations" ...
##  $ Q19     : dbl+lbl [1:1259] 19,  6, 90,  1,  6, 10,  4,  0, 10,  4,  0, 12, 12,  ...
##    ..@ label       : chr "19. Name of the organization you belong to. Second"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:26] -1 0 1 2 3 4 5 6 7 8 ...
##    .. ..- attr(*, "names")= chr [1:26] "Missing" "Not applicable" "Political parties" "Residential & community associations" ...
##  $ Q20     : dbl+lbl [1:1259]  2,  7,  0,  5, 90, 11, 17,  0, 16,  6,  0, 19,  6,  ...
##    ..@ label       : chr "20. Name of the organization that you belong to. Third"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:26] -1 0 1 2 3 4 5 6 7 8 ...
##    .. ..- attr(*, "names")= chr [1:26] "Missing" "Not applicable" "Political parties" "Residential & community associations" ...
##  $ Q21     : dbl+lbl [1:1259] 90, 90,  0,  2,  6, 11,  3,  0,  3,  3,  0, 19,  3,  ...
##    ..@ label       : chr "21  Which organization you participate most actively in the last 12 months?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:26] -1 0 1 2 3 4 5 6 7 8 ...
##    .. ..- attr(*, "names")= chr [1:26] "Missing" "Not applicable" "Political parties" "Residential & community associations" ...
##  $ Q22     : dbl+lbl [1:1259] 1, 1, 2, 1, 1, 2, 1, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2,...
##    ..@ label       : chr "22 Would you say that \"Most people can be trusted\" or \"that you must be very car"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:6] -1 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:6] "Missing" "Most people can be trusted" "You must be very careful in dealing with people" "Do not understand the question" ...
##  $ Q23     : dbl+lbl [1:1259] 2, 1, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 3, 2, 2, 3, 2,...
##    ..@ label       : chr "23 Do you agree with the statement that 'most people are trustworthy?'"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q24     : dbl+lbl [1:1259] 1, 2, 2, 2, 3, 2, 3, 1, 1, 3, 4, 2, 3, 5, 2, 4, 3, 4,...
##    ..@ label       : chr "24 How much trust do you have in each of the following types of people? Your rel"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q25     : dbl+lbl [1:1259] 2, 2, 2, 3, 3, 2, 3, 3, 1, 3, 4, 2, 3, 3, 3, 4, 4, 3,...
##    ..@ label       : chr "25 Trust in your neighbors"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q26     : dbl+lbl [1:1259] 3, 2, 2, 2, 3, 3, 3, 2, 1, 3, 8, 2, 3, 2, 3, 2, 3, 3,...
##    ..@ label       : chr "26 Trust in other people you interact with"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q27     : dbl+lbl [1:1259] 3, 4, 3, 3, 3, 4, 4, 8, 3, 3, 6, 3, 3, 4, 4, 3, 4, 3,...
##    ..@ label       : chr "27 Trust in people you meet for the first time"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q28     : dbl+lbl [1:1259] 3, 3, 2, 3, 2, 3, 3, 1, 5, 1, 5, 5, 2, 3, 2, 2, 2, 2,...
##    ..@ label       : chr "28 How many people do you have contact within a typical week day?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "0-4 people" "5-9 people" ...
##  $ Q29     : dbl+lbl [1:1259] 3, 3, 3, 3, 1, 3, 3, 3, 1, 3, 8, 3, 3, 3, 3, 3, 3, 2,...
##    ..@ label       : chr "29 Which of the following best describes your relations with most of your social"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 1 2 3 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Most people's social status are higher than yours" "Most people's social status is lower than yours" "Most people's social status are equal to yours" ...
##  $ Q30     : dbl+lbl [1:1259] 3, 3, 2, 3, 5, 2, 5, 1, 3, 2, 5, 5, 3, 3, 2, 1, 2, 2,...
##    ..@ label       : chr "30 Among these people you have frequent contacts, which of the following best de"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Virtually all of them have views similar to me" "A lot of them have views similar to me" "Only some of them have views similar to me" ...
##  $ Q31     : dbl+lbl [1:1259] 2, 4, 3, 3, 4, 2, 3, 8, 4, 3, 8, 3, 3, 3, 3, 4, 3, 3,...
##    ..@ label       : chr "31 If you have a difficult problem to manage, are there people outside your hous"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "No, nobody" "Yes, a few" "Yes, some" ...
##  $ Q32     : dbl+lbl [1:1259] 3, 4, 2, 3, 2, 3, 3, 4, 2, 2, 3, 8, 2, 4, 2, 4, 2, 3,...
##    ..@ label       : chr "32 If you had friends or co-workers whose opinions on politics differed from you"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Very hard" "A bit hard" "Not too hard" ...
##  $ Q33     : dbl+lbl [1:1259] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 1, 1, 1, 1, 2, 1,...
##    ..@ label       : chr "33 Did you vote in the last national election?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 0 1 2 3 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q34     : dbl+lbl [1:1259] 2, 2, 2, 2, 2, 3, 2, 2, 1, 1, 9, 0, 2, 1, 9, 2, 0, 1,...
##    ..@ label       : chr "34 Which parties or candidates did you vote for?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 0 1 2 3 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Not applicable" "KMT`s candidate(Eric Chu and Ju-hsuan Wang)" "DPP`s candidate(Ing-wen Tsai and Chien-jen Chen)" ...
##  $ Q34a    : dbl+lbl [1:1259] 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 0, 0, 1, 2, 0, 1, 0, 2,...
##    ..@ label       : chr "34a Did the respondent vote for the winning or losing camp?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:5] -1 0 1 2 3
##    .. ..- attr(*, "names")= chr [1:5] "Missing" "Not applicable" "Voted for the winning camp" "Voted for the losing camp" ...
##  $ Q35     : dbl+lbl [1:1259] 2, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,...
##    ..@ label       : chr "35. Did you attend a campaign meeting or rally in the last national election?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q36     : dbl+lbl [1:1259] 2, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2,...
##    ..@ label       : chr "36. Try to persudae others to vote for a certain candidate or party?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q37     : dbl+lbl [1:1259] 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,...
##    ..@ label       : chr "37. Did you do anything else to help out or work for a party or candidate runnin"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q38     : dbl+lbl [1:1259] 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 8, 8, 2, 3, 1, 1, 3, 2,...
##    ..@ label       : chr "38 On the whole, how free and fair would you say the last national election was?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Completely free and fair" "Free and fair, but with minor problems" "Free and fair, with major problems" ...
##  $ Q39     : dbl+lbl [1:1259] 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 3, 1, 3, 3, 2, 3, 4, 1,...
##    ..@ label       : chr "39 How easy or difficult to obtain roads in good condition"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 0 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Not applicable" "Very easy" "Easy" ...
##  $ Q40     : dbl+lbl [1:1259] 2, 2, 1, 2, 1, 2, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1,...
##    ..@ label       : chr "40 How easy or difficult to obtain running water"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 0 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Not applicable" "Very easy" "Easy" ...
##  $ Q41     : dbl+lbl [1:1259] 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 1, 2, 2, 1,...
##    ..@ label       : chr "41 How easy or difficult to obtain public transportation"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 0 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Not applicable" "Very easy" "Easy" ...
##  $ Q42     : dbl+lbl [1:1259] 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 2,...
##    ..@ label       : chr "42 How easy or difficult to obtain healthcare"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 0 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Not applicable" "Very easy" "Easy" ...
##  $ Q43     : dbl+lbl [1:1259] 0, 2, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2,...
##    ..@ label       : chr "43 How easy or difficult to obtain help from the pollice when you need it"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 0 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Not applicable" "Very easy" "Easy" ...
##  $ Q44     : dbl+lbl [1:1259] 0, 2, 1, 1, 1, 2, 1, 0, 8, 2, 1, 1, 2, 1, 1, 2, 2, 1,...
##    ..@ label       : chr "44 How easy or difficult to obtain access to the internet"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 0 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Not applicable" "Very easy" "Easy" ...
##  $ Q45     : dbl+lbl [1:1259] 2, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2,...
##    ..@ label       : chr "45 Generally speaking, how safe is living in this city/town/village?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Very safe" "Safe" "Unsafe" ...
##  $ Q46     : dbl+lbl [1:1259] 2, 4, 2, 1, 3, 2, 2, 1, 1, 2, 8, 3, 3, 3, 3, 2, 3, 2,...
##    ..@ label       : chr "46 How interested would you say you are in politics?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Very interested" "Somewhat interested" "Not very interested" ...
##  $ Q47     : dbl+lbl [1:1259] 2, 5, 3, 1, 2, 2, 1, 1, 1, 1, 3, 1, 1, 1, 2, 1, 5, 2,...
##    ..@ label       : chr "47 How often do you follow news about politics and government?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Everyday" "Several times a week" "Once or twice a week" ...
##  $ Q48     : dbl+lbl [1:1259] 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 2, 2, 1, 2, 2,...
##    ..@ label       : chr "48 When you get together with your family members or friends, how often do you d"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 1 2 3 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Frequently" "Occationally" "Never" ...
##  $ Q49     : dbl+lbl [1:1259] 1, 1, 1, 2, 2, 8, 1, 3, 9, 2, 3, 1, 2, 9, 2, 1, 1, 2,...
##    ..@ label       : chr "49 How often do you use the internet, either through computer, tablet or smartph"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:13] -1 1 2 3 4 5 6 7 8 9 ...
##    .. ..- attr(*, "names")= chr [1:13] "Missing" "Connected all the time" "Several hours a day" "Half to one hour a day" ...
##  $ Q50     : dbl+lbl [1:1259] 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1,...
##    ..@ label       : chr "50 Do you currently use any of the following social media networks?(E.g. faceboo"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q51a    : dbl+lbl [1:1259] 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 2, 1,...
##    ..@ label       : chr "51a You use social media primarily to connect with other people"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:5] -1 0 1 2 9
##    .. ..- attr(*, "names")= chr [1:5] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q51b    : dbl+lbl [1:1259] 2, 2, 2, 1, 2, 0, 2, 2, 0, 1, 2, 2, 2, 0, 2, 1, 2, 2,...
##    ..@ label       : chr "51b You use social media primarily to expresss my opinion on political issues"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:5] -1 0 1 2 9
##    .. ..- attr(*, "names")= chr [1:5] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q51c    : dbl+lbl [1:1259] 1, 1, 1, 1, 2, 0, 1, 2, 0, 1, 1, 2, 1, 0, 1, 1, 2, 2,...
##    ..@ label       : chr "51c You use social media primarily to share news or information"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:5] -1 0 1 2 9
##    .. ..- attr(*, "names")= chr [1:5] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q51d    : dbl+lbl [1:1259] 2, 1, 1, 1, 1, 0, 1, 2, 0, 2, 1, 1, 2, 0, 9, 1, 2, 1,...
##    ..@ label       : chr "51d You use social media primarily for work"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:5] -1 0 1 2 9
##    .. ..- attr(*, "names")= chr [1:5] "Missing" "Not applicable" "Yes" "No" ...
##  $ Q52     : dbl+lbl [1:1259] 3, 3, 3, 3, 1, 2, 3, 2, 1, 3, 3, 3, 1, 1, 1, 3, 3, 3,...
##    ..@ label       : chr "52 Which one is the most important channel for you to find information about pol"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "Television" "Newspaper(print and online)" ...
##  $ Q53     : dbl+lbl [1:1259]  5,  4,  3,  5,  3,  3,  6,  3,  4,  3,  4,  3,  4,  ...
##    ..@ label       : chr "53 How much trust do you have in each of the following types of media?Television"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 97 98 99
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q54     : dbl+lbl [1:1259]  5,  3,  4,  5,  4,  3,  5,  3,  3,  3, 98,  3,  4,  ...
##    ..@ label       : chr "54 How much trust do you have in each of the following types of media?Newspaper"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 97 98 99
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q55     : dbl+lbl [1:1259]  3,  3,  4,  4,  4,  3,  2,  4, 98,  4,  4,  3,  4, 9...
##    ..@ label       : chr "55 How much trust do you have in each of the following types of media? News on t"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 1 2 3 4 5 6 97 98 99
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Trust fully" "Trust a lot" "Trust somewhat" ...
##  $ Q56     : dbl+lbl [1:1259]  8,  2,  2,  7,  7,  4,  8,  2,  1,  1,  8,  8,  1,  ...
##    ..@ label       : chr "56 Among the political parties listed here, which party if any do you feel close"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:12] -1 1 2 3 4 5 6 7 8 97 ...
##    .. ..- attr(*, "names")= chr [1:12] "Missing" "kmt" "dpp" "New Party" ...
##  $ Q57     : dbl+lbl [1:1259] 0, 0, 3, 2, 2, 2, 0, 3, 2, 2, 0, 0, 3, 3, 0, 2, 0, 3,...
##    ..@ label       : chr "57 How close do you feel to (answer in Q56)? Is it very close, somewhat close, o"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 0 1 2 3 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Not applicable" "Very close" "Somewhat close" ...
##  $ Q58     : dbl+lbl [1:1259] 2, 1, 1, 3, 2, 3, 2, 1, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2,...
##    ..@ label       : chr "58 For the sake of the family, the individual should put his personal interests"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q59     : dbl+lbl [1:1259] 2, 2, 2, 3, 2, 3, 2, 1, 1, 2, 3, 2, 2, 2, 3, 3, 2, 3,...
##    ..@ label       : chr "59 In a group, we should sacrifice our individual interest for the sake of the g"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q60     : dbl+lbl [1:1259] 2, 4, 2, 2, 2, 3, 2, 1, 1, 2, 8, 2, 2, 2, 3, 2, 3, 3,...
##    ..@ label       : chr "60 For the sake of national interest, individual interest could be sacrificed."
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q61     : dbl+lbl [1:1259] 2, 2, 2, 1, 2, 2, 2, 1, 1, 2, 2, 2, 3, 2, 2, 2, 2, 2,...
##    ..@ label       : chr "61 When dealing with others, developing a long-term relationship is more importa"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q62     : dbl+lbl [1:1259] 4, 3, 3, 3, 3, 3, 3, 3, 2, 3, 2, 8, 3, 3, 3, 4, 3, 3,...
##    ..@ label       : chr "62 Even if parents' demands are unreasonable, children still should do what they"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q63     : dbl+lbl [1:1259] 4, 3, 3, 4, 3, 3, 3, 2, 2, 3, 3, 8, 3, 2, 3, 4, 3, 3,...
##    ..@ label       : chr "63 When a mother-in-law and a daughter-in-law come into conflict, even if the mo"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q64     : dbl+lbl [1:1259] 4, 3, 3, 4, 3, 3, 3, 1, 2, 3, 2, 8, 2, 3, 3, 4, 3, 3,...
##    ..@ label       : chr "64 Being a student, one should not question the authority of their teacher."
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q65     : dbl+lbl [1:1259] 4, 2, 2, 3, 3, 2, 3, 3, 2, 2, 2, 3, 2, 2, 3, 4, 3, 3,...
##    ..@ label       : chr "65 In a group, we should avoid open quarrel to preserve the harmony of the group"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q66     : dbl+lbl [1:1259] 4, 2, 2, 3, 2, 2, 3, 2, 2, 3, 2, 3, 3, 3, 3, 4, 2, 2,...
##    ..@ label       : chr "66 Even if there is some disagreement with others, one should avoid the conflict"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q67     : dbl+lbl [1:1259] 3, 2, 3, 3, 3, 2, 3, 1, 2, 2, 2, 3, 3, 3, 2, 4, 3, 3,...
##    ..@ label       : chr "67 A person should not insist on his own opinion if his co-workers disagree with"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q68     : dbl+lbl [1:1259] 3, 4, 3, 3, 3, 3, 3, 3, 2, 3, 2, 3, 3, 2, 3, 4, 2, 3,...
##    ..@ label       : chr "68 Wealth and poverty, success and failure are all determined by fate."
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q69     : dbl+lbl [1:1259] 4, 4, 3, 4, 3, 3, 4, 3, 4, 3, 3, 3, 3, 3, 3, 4, 3, 3,...
##    ..@ label       : chr "69 If one could have only one child, it is more preferable to have a boy than a"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:8] -1 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:8] "Missing" "Strongly agree" "Somewhat agree" "Somewhat disagree" ...
##  $ Q70     : dbl+lbl [1:1259] 4, 4, 5, 4, 5, 3, 5, 4, 3, 4, 4, 2, 5, 5, 4, 4, 5, 3,...
##    ..@ label       : chr "70 In the past three years, have you ever contacted elected officials or legisla"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q71     : dbl+lbl [1:1259] 4, 4, 4, 2, 5, 3, 5, 4, 3, 4, 4, 4, 5, 5, 5, 4, 5, 4,...
##    ..@ label       : chr "71 Contacted civil servants or officials"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q72     : dbl+lbl [1:1259] 4, 4, 2, 5, 5, 4, 5, 4, 3, 5, 5, 5, 5, 5, 3, 4, 4, 4,...
##    ..@ label       : chr "72 Contacted other influential people outside the government, such as traditiona"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q73     : dbl+lbl [1:1259] 4, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4,...
##    ..@ label       : chr "73 Contacted news media"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q74     : dbl+lbl [1:1259] 3, 4, 4, 1, 5, 4, 5, 4, 4, 4, 5, 4, 5, 3, 5, 1, 4, 4,...
##    ..@ label       : chr "74 Signed a paper petition"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q75     : dbl+lbl [1:1259] 2, 4, 2, 1, 5, 5, 3, 5, 8, 2, 5, 4, 4, 5, 5, 1, 4, 4,...
##    ..@ label       : chr "75 Signed an online petition"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q76     : dbl+lbl [1:1259] 2, 5, 5, 1, 5, 5, 1, 5, 8, 3, 5, 4, 4, 5, 5, 1, 4, 3,...
##    ..@ label       : chr "76 Used the internet including social media networks to express opinions about p"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q77     : dbl+lbl [1:1259] 2, 5, 2, 2, 5, 5, 4, 5, 4, 3, 5, 4, 4, 5, 5, 2, 4, 4,...
##    ..@ label       : chr "77 Joined a group to actively support a cause(including online)"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q78     : dbl+lbl [1:1259] 4, 4, 5, 3, 5, 4, 5, 4, 4, 4, 5, 4, 4, 5, 5, 4, 5, 5,...
##    ..@ label       : chr "78 Got together with others face-to-face to try to resolve local problems"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q79     : dbl+lbl [1:1259] 1, 5, 5, 3, 5, 5, 3, 5, 4, 4, 5, 4, 4, 5, 5, 1, 5, 4,...
##    ..@ label       : chr "79 Attended a demonstration or protest march"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q80     : dbl+lbl [1:1259] 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 4, 5, 5,...
##    ..@ label       : chr "80 Taken an action or done something for a political cause that put you in a ris"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:10] -1 0 1 2 3 4 5 7 8 9
##    .. ..- attr(*, "names")= chr [1:10] "Missing" "Not applicable" "I have done this more than three times" "I have done this two or three times" ...
##  $ Q81     : dbl+lbl [1:1259] 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 3, 1, 1, 2, 1, 3, 1,...
##    ..@ label       : chr "81 Thinking of whether you voted or not ever since you became eligible for votin"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:9] -1 0 1 2 3 4 7 8 9
##    .. ..- attr(*, "names")= chr [1:9] "Missing" "Not applicable (eligible only once)" "Voted in every election" "Voted in most elections" ...
##  $ Q82     : dbl+lbl [1:1259] 2, 8, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 8, 2, 1, 2, 2,...
##    ..@ label       : chr "82 which of the following statements do you agree with most?government leaders v"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:6] -1 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:6] "Missing" "Government leaders implement what voters want." "Government leaders do what they think is best for the people." "Do not understand the question" ...
##  $ Q82a    : dbl+lbl [1:1259] 1, 0, 1, 2, 2, 2, 1, 1, 2, 2, 1, 1, 2, 0, 2, 1, 2, 1,...
##    ..@ label       : chr "82a Do you strongly agree or just agree with the chosen statement?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Strongly agree" "Agree" ...
##  $ Q83     : dbl+lbl [1:1259] 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 2, 2, 1, 2, 2, 1, 2, 2,...
##    ..@ label       : chr "83 Which of the following statements do you agree with most? the problem of acco"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:6] -1 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:6] "Missing" "It is more important for citizens to be able to hold government accountable, even if that means it makes decisions more" "It is more important to have a government that can get things done, even if we have on influence over what it does" "Do not understand the question" ...
##  $ Q83a    : dbl+lbl [1:1259] 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,...
##    ..@ label       : chr "83a Do you strongly agree or just agree with the chosen statement?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Strongly agree" "Agree" ...
##  $ Q84     : dbl+lbl [1:1259] 1, 8, 2, 1, 2, 1, 1, 8, 1, 1, 8, 8, 2, 2, 1, 2, 2, 2,...
##    ..@ label       : chr "84 Which of the following statements do you agree with most? freedom of the pres"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:6] -1 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:6] "Missing" "The media should have the right to publish news and ideas without government control" "The government should have the right to prevent the media from publishing things that might be politically destabilizing" "Do not understand the question" ...
##  $ Q84a    : dbl+lbl [1:1259] 1, 0, 2, 2, 2, 1, 1, 0, 2, 2, 0, 0, 1, 2, 2, 2, 2, 1,...
##    ..@ label       : chr "84a Do you strongly agree or just agree with the chosen statement?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Strongly agree" "Agree" ...
##  $ Q85     : dbl+lbl [1:1259] 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 8, 1, 1, 2, 2,...
##    ..@ label       : chr "85 Which of the following statements do you agree with most? political leader"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:6] -1 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:6] "Missing" "Political leaders are chosen by the people through open and competitive elections" "Political leaders are chosen on the basis on their virtue and capability even without election" "Do not understand the question" ...
##  $ Q85a    : dbl+lbl [1:1259] 1, 2, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 0, 2, 1, 2, 1,...
##    ..@ label       : chr "85a Do you strongly agree or just agree with the chosen statement?"
##    ..@ format.stata: chr "%8.0g"
##    ..@ labels      : Named num [1:7] -1 0 1 2 7 8 9
##    .. ..- attr(*, "names")= chr [1:7] "Missing" "Not applicable" "Strongly agree" "Agree" ...
##   [list output truncated]

We then subset Q141-Q145 from the data. This question set contains five questions related to citizen empowerment and political support. Before you do that, please read Page 17 of the Wave 5 Taiwan Tech Report.

# Subset Q141-145, also use complete.cases() to select rows that do not contain missing values in any of the variable columns
ABS_W5_sub <- ABS_W5[complete.cases(ABS_W5), c("Q141", "Q142", "Q143", "Q144", "Q145")]

Now is your turn! You will be using this data set (ABS_W5_sub) to complete the following tasks.

\(\textbf{Q1}\). Compute the correlation between odd-numbered questions (“Q141”, “Q143”, “Q145”) and even-numbered questions (“Q142”, “Q144”). And then compute the split-half reliability. Present your finding and explain the result. (1 point)

\(\textbf{Q2}\). Estimate Cronbach’s Alpha for …

Q2a. The first three data columns and all five data columns, separately (1 point)

Q2b. Compare the two estimates’ Cronbach’s Alphas and explain what might cause the their difference (1 point)