seuriously / caleg_dpr_2019

5 stars 4 forks source link

duplicate entries in caleg_dpr.csv #2

Closed sagitaninta closed 4 years ago

sagitaninta commented 5 years ago

Hi, saya mencoba pake data caleg_dpr.csv dan dari 7634 rows hanya ada 6759 unique entries, dan ketika dicek duplicates-nya, kebanyakan duplikat adalah entri yang gak ada nama dan nomor urutnya, tapi ada nama partai dan provinsinya. Apakah ini mungkin kesalahan dalam baca json? Saya kurang familiar dengan bentuk data json tapi mungkin itu kenapa juga dari klaim KPU yang harusnya 7968 jadi cuma kebaca 7634(?)

Ini contoh skrinsyot entri yang datanya kosong di nomor urut yang nama. Ada entri lagi di kota tinggal, tapi selain itu sisa field kosong. image

ini kodenya

library(dplyr)
library(janitor)
library(tidyverse)

download.file("https://raw.githubusercontent.com/seuriously/caleg_dpr_2019/master/caleg_dpr.csv", destfile = "input/caleg_dpr_2019.csv")
caleg<-read_delim("input/caleg_dpr_2019.csv", delim = "|", na = c("", "NA", "-"))
glimpse(caleg)
caleg<-caleg %>%  select(
    partai,
    provinsi,
    Dapil,
    No..Urut,
    Nama.Lengkap,
    Jenis.Kelamin,
    Gelar.Akademis.Depan,
    Gelar.Akademis.Belakang,
    Pendidikan,
    Pekerjaan,
    kota_tinggal,
    Tempat.Lahir,
    Tanggal.Lahir,
    umur,
    Agama,
    Status.Perkawinan,
    Jumlah.Anak,
    Motivasi,
    Status.Khusus
  ) %>%
  clean_names()
glimpse(caleg)

## beberapa variabel difaktorkan
caleg_2019<-caleg %>% mutate(partai=as.factor(partai),
                                  provinsi=as.factor(provinsi),
                                  dapil=as.factor(provinsi),
                                  jenis_kelamin=as.factor(jenis_kelamin),
                                  gelar_akademis_depan=as.factor(gelar_akademis_depan),
                                gelar_akademis_belakang=as.factor(gelar_akademis_belakang),
                                  pendidikan=as.factor(pendidikan),
                                  pekerjaan=as.factor(pekerjaan),
                                  kota_tinggal=as.factor(kota_tinggal),
                                  tempat_lahir=as.factor(tempat_lahir),
                                  tanggal_lahir=as.Date(tanggal_lahir),
                                  agama=as.factor(agama),
                                  status_perkawinan=as.factor(status_perkawinan),
                                  jumlah_anak=as.factor(jumlah_anak))
glimpse(caleg_2019)

## Lihat jumlah caleg secara umum
caleg_2019 %>% distinct() %>% summarise(n=n())
## Berapakah jumlah entri duplikat jika ada?
nrow(caleg_2019)-caleg_2019 %>% distinct() %>% summarise(n=n())
## Bagaimanakah tampilan data duplikat?
head(caleg_2019[duplicated(caleg_2019)==T,])
## Entri keberapakah yang duplikat?
which(duplicated(caleg_2019))
## Lokasi duplikat cukup tersebar, mari lihat salah satu bagian
caleg_2019[559:571,]
seuriously commented 5 years ago

itu bukan duplikat. Untuk melakukan scrapping ini saya melakukan left join antara list caleg per partai dengan profil mereka. list caleg ini hanya berisikan 6 kolom pertama. kolom 7 hingga akhir berasal dari profil caleg tersebut. ketika data profil caleg tidak ada di web, maka kolom ke-7 hingga terakhir akan berisikan NA.

gampangnya, untuk melihat duplikasi kolom yang di count unique adalah id.