library(foreign)
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.6.3
## Registered S3 methods overwritten by 'tibble':
##   method     from  
##   format.tbl pillar
##   print.tbl  pillar
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.2.1     v readr   1.3.1
## v tibble  2.1.3     v purrr   0.3.2
## v tidyr   1.0.0     v stringr 1.4.0
## v ggplot2 3.2.1     v forcats 0.4.0
## Warning: package 'readr' was built under R version 3.6.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library (haven)
## Warning: package 'haven' was built under R version 3.6.3
library (expss)
## Warning: package 'expss' was built under R version 3.6.3
## 
## Use 'expss_output_viewer()' to display tables in the RStudio Viewer.
##  To return to the console output, use 'expss_output_default()'.
## 
## Attaching package: 'expss'
## The following objects are masked from 'package:haven':
## 
##     is.labelled, read_spss
## The following objects are masked from 'package:stringr':
## 
##     fixed, regex
## The following objects are masked from 'package:purrr':
## 
##     keep, modify, modify_if, transpose, when
## The following objects are masked from 'package:tidyr':
## 
##     contains, nest
## The following object is masked from 'package:ggplot2':
## 
##     vars
## The following objects are masked from 'package:dplyr':
## 
##     between, compute, contains, first, last, na_if, recode, vars
path = 'C:/Users/mitro/UNICEF/James Kaphuka - 2019 Tonga MICS6 Survey/SPSS'
setwd(path)

data = read.spss('mn.sav', to.data.frame = T, use.value.labels = FALSE)
## re-encoding from UTF-8
data %>% filter(data$MWM17 == 1, echo=FALSE)
##   [1] HH1         HH2         LN          MWM1        MWM2        MWM3       
##   [7] MWMINT      MWM3A       MWM4        MWM5        MWM6D       MWM6M      
##  [13] MWM6Y       MWM8        MWM9        MWM17       MWM7H       MWM7M      
##  [19] MWM10H      MWM10M      MWM11       MWM12       MWM13       MWM14      
##  [25] MWM15       MWMHINT     MWMFIN      MWB3M       MWB3Y       MWB4       
##  [31] MWB5        MWB6A       MWB6B       MWB7        MWB9        MWB10A     
##  [37] MWB10B      MWB11       MWB12A      MWB12B      MWB14       MWB15      
##  [43] MWB16       MWB17       MWB18       MWB19B      MWB19C      MWB19D     
##  [49] MWB19X      MWB19NR     MWDOI       MWB3C       MWB3F       MWB4C      
##  [55] MWAGE       MMT1        MMT2        MMT3        MMT4        MMT5       
##  [61] MMT6A       MMT6B       MMT6C       MMT6D       MMT6E       MMT6F      
##  [67] MMT6G       MMT6H       MMT6I       MMT9        MMT10       MMT11      
##  [73] MMT12       MCM1        MCM2        MCM3        MCM4        MCM5       
##  [79] MCM6        MCM7        MCM8        MCM9        MCM10       MCM11      
##  [85] MCM12       MCM15       MCM16       MCM17       MCM18M      MCM18Y     
##  [91] MDV1A       MDV1B       MDV1C       MDV1D       MDV1E       MVT1       
##  [97] MVT2        MVT3        MVT5        MVT6        MVT7A       MVT7B      
## [103] MVT7X       MVT7NR      MVT8        MVT9        MVT10       MVT11      
## [109] MVT12       MVT13       MVT14       MVT17       MVT18A      MVT18B     
## [115] MVT18X      MVT18NR     MVT19       MVT20       MVT21       MVT22A     
## [121] MVT22B      MVT22C      MVT22D      MVT22E      MVT22F      MVT22X     
## [127] MMA1        MMA3        MMA4        MMA5        MMA6        MMA7       
## [133] MMA8M       MMA8Y       MMA11       MMA8C       MMA8F       MMA11C     
## [139] MAF2        MAF3        MAF6        MAF8        MAF9        MAF10      
## [145] MAF11       MAF12       MSB1        MSB2U       MSB2N       MSB3       
## [151] MSB4        MSB6        MSB7        MSB8        MSB9        MSB12      
## [157] MHA1        MHA2        MHA3        MHA4        MHA5        MHA7       
## [163] MHA8A       MHA8B       MHA8C       MHA10       MHA24       MHA25      
## [169] MHA26       MHA27       MHA28       MHA29       MHA30       MHA31      
## [175] MHA32       MHA33       MHA34       MHA35       MHA36       MSTI1A     
## [181] MSTI1B      MSTI4       MSTI8       MSTI9A      MSTI9B      MSTI9D     
## [187] MSTI9F      MSTI9H      MSTI9I      MSTI9J      MSTI9X      MSTI9Y     
## [193] MSTI9NR     MSTI10      MSTI11      MTA1        MTA2        MTA3       
## [199] MTA4        MTA5        MTA6        MTA7        MTA8A       MTA8B      
## [205] MTA8D       MTA8E       MTA8F       MTA8X       MTA8NR      MTA9       
## [211] MTA9A       MTA9B       MTA9C       MTA10       MTA11       MTA12A     
## [217] MTA12B      MTA12C      MTA12X      MTA12NR     MTA13       MTA14      
## [223] MTA15       MTA16       MTA17       MLS1        MLS2        MLS3       
## [229] MLS4        HH4         HH6         HH7         MWDOB       MWDOM      
## [235] MWAGEM      MMSTATUS    mwelevel    minsurance  mdisability mmigration 
## [241] ethnicity   religion    mnweight    wscore      windex5     windex10   
## [247] wscoreu     windex5u    windex10u   wscorer     windex5r    windex10r  
## [253] HH7A        HH7C        HH1A        HH7B        IncProbMen 
## <0 rows> (or 0-length row.names)
data = compute(data, {
  literate = 2
})

data$literate<- ifelse((data$MWB6A >=2 & data$MWB6A <8), 1,
                       ifelse(data$MWB14==3,1,2))

data$literate<-as.numeric(as.character(data$literate))

val_lab(data$literate) = num_lab("
                                 1 Literate
                                 2 Illiterate
                                 ")

data = compute(data, {
  literateP = 0
})

data$literateP<- ifelse(data$literate ==1,100,0)


recode(data$mwelevel) = c(0 ~ 0, 1 ~ 1, 2:3 ~ 2, 9 ~ 9, other ~ NA)

data$mwelevel<-as.numeric(as.character(data$mwelevel))
val_lab(data$mwelevel) = num_lab("
0 Lower than primary
1 Primary
2 Secondary or higher [A]
9 Don't/know/missing
                                 ")

data = compute(data, {
  numMen = 1
})

data<-apply_labels(data, 
                   literateP =  "Total percentage literate [1]",
                   numMen = "Number of men",
                   HH6 = "Area",
                   HH7 = "Region",
                   mdisability = "Functional difficulty",
                   religion = "Religion of the household head",
                   ethnicity = "Ethnicity of the household head",
                   windex5 = "Wealth quintile")

val_lab(data$HH6) = num_lab("
1 Urban
2 Rural")

val_lab(data$mdisability) = num_lab("
1 Has functinal difficulty
2 No funcitonal difficulty")

val_lab(data$windex5) = num_lab("
1 Poorest
2 Second
3 Middle
4 Fourth
5 Richest")

val_lab(data$religion) = num_lab("
1 Free Wesleyan Church
2 Latter Day Saints
3 Roman Catholic
4 Free Church of Tonga
5 Other religion
99 Don'tknow/missing")

val_lab(data$ethnicity) = num_lab("
1 Tongan
2 Chinese 
3 Fijian
4 Other ethnicity 
99 Don'tknow/missing")


val_lab(data$HH7) = num_lab("
1 Tongatapu
2 Vava'u
3 Ha'apai
4 'Eua
5 Ongo Niua")

data %>%
  tab_cells(HH6, HH7, mdisability, ethnicity ,religion, windex5) %>%
  tab_cols(mwelevel,literate, literateP, numMen) %>%
  tab_weight(weight = mnweight) %>%
  tab_stat_rpct(total_label = NULL,total_statistic = "w_cases",)%>%
  tab_pivot()%>%
  set_caption( "Table SR.6.1M: Literacy (men)
               Percent distribution of men age 15-49 years by highest level of school attended and literacy, and the total percentage literate, " )
Table SR.6.1M: Literacy (men) Percent distribution of men age 15-49 years by highest level of school attended and literacy, and the total percentage literate,
 mwelevel     literate     Total percentage literate [1]     Number of men 
 Lower than primary   Primary   Secondary or higher [A]   Don’t/know/missing     Literate   Illiterate     0   100     1 
 Area 
   Urban  0.3 0.6 98.9 0.3   99.7 0.3   0.3 99.7   100
   Rural  0.0 1.1 98.9 0.0   99.7 0.3   0.3 99.7   100
   #Total wtd. cases  1.1 11.8 1217.9 1.2   1227.1 3.7   3.7 1227.1   1232
 Region 
   Tongatapu  0.1 0.7 99.1 0.1   99.9 0.1   0.1 99.9   100
   Vava’u  1.9 98.1   99.2 0.8   0.8 99.2   100
   Ha’apai  0.5 1.6 97.9   99.0 1.0   1.0 99.0   100
   ’Eua  99.5 0.5   99.5 0.5   0.5 99.5   100
   Ongo Niua  1.4 98.6   98.6 1.4   1.4 98.6   100
   #Total wtd. cases  1.1 11.8 1217.9 1.2   1227.1 3.7   3.7 1227.1   1232
 Functional difficulty 
   Has functinal difficulty  4.0 3.0 93.0   96.9 3.1   3.1 96.9   100
   No funcitonal difficulty  1.1 98.8 0.1   99.7 0.3   0.3 99.7   100
   #Total wtd. cases  1.1 11.8 1040.5 1.2   1049.7 3.7   3.7 1049.7   1054.6
 Ethnicity of the household head 
   Tongan  0.1 0.7 99.1 0.1   99.7 0.3   0.3 99.7   100
   Chinese  11.8 88.2   100.0   100.0   100
   Fijian       
   Other ethnicity  100.0   100.0   100.0   100
   Don’tknow/missing       
   #Total wtd. cases  1.1 11.8 1217.9 1.2   1227.1 3.7   3.7 1227.1   1232
 Religion of the household head 
   Free Wesleyan Church  0.3 0.2 99.5 0.1   99.8 0.2   0.2 99.8   100
   Latter Day Saints  0.2 99.8   99.8 0.2   0.2 99.8   100
   Roman Catholic  2.0 97.5 0.5   99.2 0.8   0.8 99.2   100
   Free Church of Tonga  1.0 99.0   99.4 0.6   0.6 99.4   100
   Other religion  2.2 97.8   100.0   100.0   100
   Don’tknow/missing       
   #Total wtd. cases  1.1 11.8 1217.9 1.2   1227.1 3.7   3.7 1227.1   1232
 Wealth quintile 
   Poorest  0.2 1.1 98.6 0.1   99.5 0.5   0.5 99.5   100
   Second  0.3 3.0 96.4 0.3   99.4 0.6   0.6 99.4   100
   Middle  0.6 99.4   99.6 0.4   0.4 99.6   100
   Fourth  100.0   100.0   100.0   100
   Richest  100.0   100.0   100.0   100
   #Total wtd. cases  1.1 11.8 1217.9 1.2   1227.1 3.7   3.7 1227.1   1232
expss_output_viewer()