Skip to content

Instantly share code, notes, and snippets.

@kkprakasa
Last active November 4, 2019 04:55
Show Gist options
  • Save kkprakasa/80e6497eb3b742f5f258f14098933460 to your computer and use it in GitHub Desktop.
Save kkprakasa/80e6497eb3b742f5f258f14098933460 to your computer and use it in GitHub Desktop.
# mindshare
# surabaya 3578
require(foreign)
require(dplyr)
require(reshape2)
require(stringi)
provinsi<-read.csv('https://raw.githubusercontent.com/pr4ka5a/Wilayah-Administratif-Indonesia/master/csv/provinces.csv', header=FALSE, stringsAsFactors=FALSE)
kabupaten<-read.csv('https://raw.githubusercontent.com/pr4ka5a/Wilayah-Administratif-Indonesia/master/csv/regencies.csv',header=FALSE, stringsAsFactors=FALSE)
names(provinsi) <- paste(c('R101','provinsi'))
provinsi$provinsi <- stri_trans_totitle(provinsi$provinsi)
names(kabupaten) <- paste(c('R102','R101','kabupaten'))
kabupaten$kabupaten <- stri_trans_totitle(kabupaten$kabupaten)
kabupaten[c(87,80,153,391,394),]$kabupaten <- paste(c('Kota Dumai', 'Kota Siak', 'Kota Batam', 'Kabupaten ToliToli', 'Kabupaten Tojo UnaUna' ))
kabupaten <- merge(provinsi, kabupaten, by='R101', all=TRUE)
ind <- read.dbf('./kor17ind_a_diseminasi.dbf')[,c(1:4,8,11,56,59,60:64,73:82,127)]
ind$R102 <- paste0(ind$R101, sprintf('%02d',ind$R102))
for( i in 9:23){
ind[i]<-ifelse(!is.na(ind[i]), paste0('Ya'), paste0('Tidak'))
print(paste0(names(ind[i]),' selesai'))
}
yn <- c('1'='Ya','5'='Tidak')
lp <- c('1'='Laki','2'='Perempuan')
dk <- c('1'='Kota','2'='Desa')
ind[,4]<-dk[ as.character(ind[,4])]
ind[,8]<-yn[ as.character(ind[,8])]
ind[,7]<-yn[ as.character(ind[,7])]
ind[,5]<-lp[ as.character(ind[,5])]
ind$katUsia <- ifelse(ind$R407 < 5 ,paste0('< 5'),
ifelse(ind$R407 < 16, paste0('5-15'),
ifelse(ind$R407 < 25, paste0('16-24'),
ifelse(ind$R407 < 35, paste0('25-34'),
paste0('>34')))))
names(ind)[c(9:13)] <- c('Mengakses internet menggunakan KOMPUTER DESKTOP',
'Mengakses internet menggunakan LAPTOP-NOTEBOOK',
'Mengakses internet menggunakan TABLET',
'Mengakses internet menggunakan HP-PONSEL',
'Mengakses internet menggunakan LAINNYA')
names(ind)[c(14:23)] <- c('Mengakses Internet untuk MENDAPAT INFORMASI-BERITA',
'Mengakses Internet untuk MENGERJAKAN TUGAS SEKOLAH-KULIAH',
'Mengakses Internet untuk MENGIRIM-MENERIMA E-MAIL',
'Mengakses Internet untuk MEDIA SOSIAL-JEJARING SOSIAL (FACEBOOK,TWITTER,BBM,WHATSAPP,SKYPE,DLL )',
'Mengakses Internet untuk PEMBELIAN BARANG-JASA',
'Mengakses Internet untuk PENJUALAN BARANG-JASA',
'Mengakses Internet untuk HIBURAN (DOWNLOAD-MAIN GAME ,NONTON TV,DOWNLOAD-NONTON FILM-VIDEO,RADIO,DOWNLOAD GAMBAR DAN MUSIK )',
'Mengakses Internet untuk FASILITAS FINANSIAL (E-BANKING)',
'Mengakses Internet untuk MENDAPAT INFORMASI MENGENAI BARANG-JASA',
'Mengakses Internet untuk LAINNYA')
names(ind)[c(7:8)] <-c('Menggunakan Telepon selular dalam 3 bulan terakhir',
'Apakah Pernah Mengakses Internet (Termasuk media sosial)')
# Menggunakan Telepon selular dalam 3 bulan terakhir
# Apakah Pernah Mengakses Internet (Termasuk media sosial
# Mengakses Internet untuk MENDAPAT INFORMASI-BERITA
# Mengakses Internet untuk MENGERJAKAN TUGAS SEKOLAH-KULIAH
# Mengakses Internet untuk MENGIRIM-MENERIMA E-MAIL
# Mengakses Internet untuk MEDIA SOSIAL-JEJARING SOSIAL (FACEBOOK,TWITTER,BBM,WHATSAPP,SKYPE,DLL )
# Mengakses Internet untuk PEMBELIAN BARANG-JASA
# Mengakses Internet untuk PENJUALAN BARANG-JASA
# Mengakses Internet untuk HIBURAN (DOWNLOAD-MAIN GAME ,NONTON TV,DOWNLOAD-NONTON FILM-VIDEO,RADIO,DOWNLOAD GAMBAR DAN MUSIK )
# Mengakses Internet untuk FASILITAS FINANSIAL (E-BANKING)
# Mengakses Internet untuk MENDAPAT INFORMASI MENGENAI BARANG-JASA
# Mengakses Internet untuk LAINNYA
# Mengakses internet menggunakan KOMPUTER DESKTOP
# Mengakses internet menggunakan LAPTOP-NOTEBOOK
# Mengakses internet menggunakan TABLET
# Mengakses internet menggunakan HP-PONSEL
# Mengakses internet menggunakan LAINNYA
## Prototypes
# merge(
# kabupaten,
# merge(
# merge(
# dcast(
# setNames(aggregate(FWT~ R101+R102+R105, ind[ ind$katUsia != '< 5' & ind[,7]=='Ya',],sum),c('R101','R102','R105',paste0('FWT.',names(ind[7]),'.Ya'))),
# R101+R102 ~ R105),
# dcast(
# setNames(aggregate(FWT~ R101+R102+katUsia, ind[ ind$katUsia != '< 5' & ind[,7]=='Ya',],sum),c('R101','R102','katUsia',paste0('FWT.',names(ind[7]),'.Ya'))),
# R101+R102 ~ katUsia),
# by = c('R101','R102'),
# all.x=T
# ),
# merge(
# dcast(
# setNames(aggregate(FWT~ R101+R102+R405, ind[ ind$katUsia != '< 5' & ind[,7]=='Ya',],sum),c('R101','R102','R405',paste0('FWT.',names(ind[7]),'.Ya'))),
# R101+R102 ~ R405),
# aggregate(FWT~ R101+R102, ind[ ind$katUsia != '< 5',],sum),
# by=c('R101','R102'),
# all.x=T
# ),
# by=c('R101','R102'),
# all.x=T
# ),
# by=c('R101','R102'),
# all.x=T)
aggregate(FWT ~ R101+R102+R405+katUsia,ind[ ind$katUsia != '< 5'& ind$R102 == '3578' & ind[,7] == 'Ya', sum)
surabaya<-kabupaten[ kabupaten$R102 =='3578',]
surabaya<-
merge(surabaya,
aggregate(FWT ~ R101+R102+R405+katUsia,ind[ ind$katUsia != '< 5'& ind$R102 == '3578',], sum),
by=c('R101','R102'),
all.x=T)
for(i in 7:23){
data<-setNames(aggregate(FWT ~ R101+R102+R405+katUsia,ind[ ind$katUsia != '< 5'& ind$R102 == '3578' & ind[,i] == 'Ya',], sum),c('R101','R102','R405','katUsia',paste0('FWT.',names(ind[i]),'.Ya')))
surabaya<-merge(surabaya, data, by=c('R101','R102','R405','katUsia'), all.x=T)
}
for(i in 7:23){
write.csv(
merge(
kabupaten,
merge(
merge(
dcast(
setNames(aggregate(FWT~ R101+R102+R105, ind[ ind$katUsia != '< 5' & ind[,i]=='Ya',],sum),c('R101','R102','R105',paste0('FWT.',names(ind[i]),'.Ya'))),
R101+R102 ~ R105),
dcast(
setNames(aggregate(FWT~ R101+R102+katUsia, ind[ ind$katUsia != '< 5' & ind[,i]=='Ya',],sum),c('R101','R102','katUsia',paste0('FWT.',names(ind[i]),'.Ya'))),
R101+R102 ~ katUsia),
by = c('R101','R102'),
all.x=T
),
merge(
dcast(
setNames(aggregate(FWT~ R101+R102+R405, ind[ ind$katUsia != '< 5' & ind[,i]=='Ya',],sum),c('R101','R102','R405',paste0('FWT.',names(ind[i]),'.Ya'))),
R101+R102 ~ R405),
aggregate(FWT~ R101+R102, ind[ ind$katUsia != '< 5',],sum),
by=c('R101','R102'),
all.x=T
),
by=c('R101','R102'),
all.x=T
),
by=c('R101','R102'),
all.x=T
),
paste0(names(ind[i]),'.csv'),
row.names=F
)
}
datalist = list()
for(i in 7:23){
dat<-merge(
kabupaten,
merge(
merge(
dcast(
setNames(aggregate(FWT~ R101+R102+R105, ind[ ind$katUsia != '< 5' & ind[,i]=='Ya',],sum),c('R101','R102','R105',paste0('FWT.',names(ind[i]),'.Ya'))),
R101+R102 ~ R105),
dcast(
setNames(aggregate(FWT~ R101+R102+katUsia, ind[ ind$katUsia != '< 5' & ind[,i]=='Ya',],sum),c('R101','R102','katUsia',paste0('FWT.',names(ind[i]),'.Ya'))),
R101+R102 ~ katUsia),
by = c('R101','R102'),
all.x=T
),
merge(
dcast(
setNames(aggregate(FWT~ R101+R102+R405, ind[ ind$katUsia != '< 5' & ind[,i]=='Ya',],sum),c('R101','R102','R405',paste0('FWT.',names(ind[i]),'.Ya'))),
R101+R102 ~ R405),
aggregate(FWT~ R101+R102, ind[ ind$katUsia != '< 5',],sum),
by=c('R101','R102'),
all.x=T
),
by=c('R101','R102'),
all.x=T
),
by=c('R101','R102'),
all.x=T
)
dat$nama.dataset <- names(ind[i])
datalist[[i]]<- dat
}
dataOut<-do.call(rbind,datalist)
# ===========================================================
ruta <- read.dbf('../../SUSENAS Maret 2018/kor18rt_diseminasi.dbf')[,c(1:3,16,153,157,175,176,169,181)]
ruta$R102 <- paste0(ruta$R101, sprintf('%02d',ruta$R102))
ruta <- ruta[ ruta$R102 == 3578,]
r405 <- c('1'='Laki','2'='Perempuan')
r105 <- c('1'='Kota','2'='Desa')
r1502 <- c('1'='Milik sendiri',
'2'='Kontrak/Sewa',
'3'='Bebas sewa',
'4'='Dinas',
'5'='Lainnya')
r1801K <- c('1'='Ya','5'='Tidak')
ruta$R1502 <- r1502[as.character(ruta$R1502)]
ruta$R1801K <- r1801K[as.character(ruta$R1801K)]
ruta$R105 <- r105[as.character(ruta$R105)]
ind$R105 <- r105[ as.character(ind$R105)]
ind$R405 <- r405[ as.character(ind$R405)]
ms <- read.dbf('../../SUSENAS Maret 2018/blok42.dbf')
ms <- ms[ ms$KODE %in% c(232,233,234,235,227,229),]
ms$EXP_m <- ms$SEBULAN * ms$WERT
ms$R102 <- paste0(ms$R101, sprintf('%02d',ms$R102))
ms <- ms[ ms$R102 ==3578,]
msp<-merge(
aggregate( EXP_m ~ URUT+R101+R102+R105+KODE, ms, sum),
aggregate( WERT ~ URUT+R101+R102+R105+KODE, ms, sum),
by=c('R101','R102','R105','KODE','URUT'),
all.x=T
)
msp$rataan <- msp$EXP_m/msp$WERT
msp<-dcast(msp, URUT+R101+R102~KODE, value.var='rataan')
write.csv(
merge(
kabupaten[ kabupaten$R102 == 3578,],
merge(
ruta,msp,
by=c('URUT','R101','R102'),
all.x=T
),
by=c('R101','R102'),
all.x=T
),
'mindshare-surabaya-ruta-rev1.csv',
row.names=F)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment