Instantly share code, notes, and snippets.
Last active
November 4, 2019 04:55
-
Star
(0)
0
You must be signed in to star a gist -
Fork
(0)
0
You must be signed in to fork a gist
-
Save kkprakasa/80e6497eb3b742f5f258f14098933460 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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