Pengantar Data Sains

Tugas 1


Kontak : \(/downarrow\)
Email
Instagram https://www.instagram.com/arifin.alicia/
RPubs https://rpubs.com/aliciaarifin/

Biodata

  • Nama : Alicia Arifin
  • Prodi : Statistika Bisnis
  • NIM : 20214920001

Soal

  • Import data
  • Create and organize subsets of tabular data using filter, select, arrange, and slice.
  • Visualize data with a ggplot bar plot.

Jawaban

import data

import data

rs <- read.csv("C:/Users/arifi/Documents/Kuliah/sems 2/pengantar data sains/data_c19_jan2021.csv")
rs

pick a date

tanggal 2021-01-02 saja yang diambil

rs = subset(rs, subset = tanggal == "2021-01-02")
rs

data di atas merupakan data tanggal 2 Januari 2021.

organize

organize the data :)

filter

filter untuk mengekstrak baris

jakbar = filter(rs, nama_kota == "JAKARTA BARAT")
jakbar # hanya di jakarta barat
jakut_jakpus = filter(rs, nama_kota == "JAKARTA PUSAT" | nama_kota == "JAKARTA UTARA")
jakut_jakpus # puskesmas yang ada di jakarta utara atau jakarta pusat

select

select untuk mengekstrak kolom

rs_clean = select(rs,id_kel, nama_kota, nama_kecamatan,
nama_kelurahan, kategori,sub_kategori ,jumlah)

rs_clean

arrange

arrange unuk mengurutkan dari suatu kolom

arranged_jumlah = arrange(rs_clean, by = desc(jumlah))
arranged_jumlah

slice

slice untuk mengambil baris yang diinginkan. Sebagai contoh, kita bisa mencari 100 kelurahan terbanyak pasien yang dirawat karena covid-19 pada tanggal 2 Januari 2021.

top100 = filter(arranged_jumlah, kategori == "POSITIF")
top100%>%           # mencari macam sub katergori 
  count(sub_kategori)
top100 = filter(top100, sub_kategori == "Dirawat")
top100 = slice(top100, 1:100)
top100

visualize

Jumlah kasus Total perkota

Kasus total di semua kategori

jaktim = filter(rs, nama_kota == "JAKARTA TIMUR")
jakut = filter(rs, nama_kota == "JAKARTA UTARA")
jaksel = filter(rs, nama_kota == "JAKARTA SELATAN")
jakpus = filter(rs, nama_kota == "JAKARTA PUSAT")
p.seribu = filter(rs, nama_kota == "KAB.ADM.KEP.SERIBU")

kota = data.frame("Jakarta"   = c("Barat"  ,"Timur"  ,"Selatan","Pusat",  "Utara" ,"Pulau Seribu"  ),
                       "Jumlah" = c(sum(jakbar$jumlah),sum(jaktim$jumlah),sum(jaksel$jumlah),sum(jakpus$jumlah),sum(jakut$jumlah),
                                    sum(p.seribu$jumlah)))

ggplot(kota, aes(x = Jakarta, y = Jumlah)) +
  geom_bar(stat = "identity")+
  geom_text(aes(label = Jumlah),
            vjust =-0.25,     color="black", size = 3.5)+
  labs(title = "Banyaknya kasus covid per kota di Jakarta",
       subtitle = "2 Januari 2021")

# sama seperti yang di atas tetapi berurut
ggplot(kota, aes(x = reorder(Jakarta, Jumlah),
                 y = Jumlah))+
  geom_bar(stat = "identity",
           fill = rainbow(6)) + theme_minimal()+
  geom_text(aes(label = Jumlah),
            vjust =-0.25,     color="black", size = 3.5)+
  labs(title = "Banyaknya kasus covid per kota di Jakarta",
       subtitle = "2 Januari 2021 (semua kategori)",
       x = "Bagian Jakarta")

Kategori pasien covid-19

hai = rs_clean %>%
  count(kategori)
hai
a = filter(rs_clean, kategori == "DISCARDED" )
b = filter(rs_clean, kategori == "KONTAK ERAT")
c = filter(rs_clean, kategori == "PELAKU PERJALANAN")
d = filter(rs_clean, kategori == "POSITIF" )
e = filter(rs_clean, kategori == "PROBABLE")
f = filter(rs_clean, kategori == "SUSPEK")

rata_kategori = data.frame("kategori" = hai$kategori,
                           "n" = c(sum(a$jumlah),  sum(b$jumlah),  sum(c$jumlah), sum(d$jumlah), sum(e$jumlah), sum(f$jumlah)))

ggplot(rata_kategori, aes(x = reorder(kategori, n),
                 y = n))+
  geom_bar(stat = "identity",
           fill = rainbow(6)) + theme_minimal()+
  geom_text(aes(label = n),
            vjust =-0.25,     color="black", size = 3.5)+
  labs(title = "Kategori Pasien covid-19 DKI Jakarta",
       subtitle = "2 Januari 2021",
       x = "Kategori Pasien", y = "jumlah")+theme(axis.text.x = element_text(angle=15, hjust = 1))

Sub-Kategori pasien DKI Jakarta

subkat = rs_clean %>%
  count(sub_kategori)
subkat
a = filter(rs_clean, sub_kategori =="Dirawat"  )
b = filter(rs_clean, sub_kategori =="Isolasi di Rumah"  )
c = filter(rs_clean, sub_kategori =="Meninggal"       )
d = filter(rs_clean, sub_kategori =="Perawatan RS"      )
e = filter(rs_clean, sub_kategori =="Probable Meninggal")
f = filter(rs_clean, sub_kategori =="Selesai Isolasi"   )
g = filter(rs_clean, sub_kategori =="Sembuh"   )
h = filter(rs_clean, sub_kategori =="Suspek Meninggal" )

abc = data.frame( "hello" = c("Dirawat","Isolasi di Rumah"  ,"Meninggal"       ,"Perawatan RS"      ,"Probable Meninggal",
                                     "Selesai Isolasi"   ,
                                     "Sembuh"   ,
                                     "Suspek Meninggal" ),
                  "n" = c(sum(a$jumlah),  sum(b$jumlah),  sum(c$jumlah), sum(d$jumlah), sum(e$jumlah), sum(f$jumlah), sum(g$jumlah), sum(h$jumlah)))

ggplot(abc, aes(x = reorder(hello,n),
                 y = n))+
  geom_bar(stat = "identity",
           fill = rainbow(8)) + theme_minimal()+
  geom_text(aes(label = n),
            vjust =-0.25,     color="black", size = 3.5)+
  labs(title = "Sub-Kategori Pasien Covid-19 DKI Jakarta",
       subtitle = "2 Januari 2021",
       x = "Sub-Kategori Pasien", y = "jumlah")+theme(axis.text.x = element_text(angle=30, hjust = 1)) 

Kasus Positif dan Dirawat per kota

jakbar = filter(top100, nama_kota == "JAKARTA BARAT")
jaktim = filter(top100, nama_kota == "JAKARTA TIMUR")
jakut  = filter(top100, nama_kota == "JAKARTA UTARA")
jaksel = filter(top100, nama_kota == "JAKARTA SELATAN")
jakpus = filter(top100, nama_kota == "JAKARTA PUSAT")
p.seribu = filter(top100, nama_kota == "KAB.ADM.KEP.SERIBU")

terbanyak_kota_dirawat = data.frame("Jakarta"   = c("Barat"  ,"Timur"  ,"Selatan","Pusat",  "Utara" ,"Pulau Seribu"  ),
                       "Jumlah" = c(sum(jakbar$jumlah),sum(jaktim$jumlah),sum(jaksel$jumlah),sum(jakpus$jumlah),sum(jakut$jumlah),
                                    sum(p.seribu$jumlah)))

ggplot(terbanyak_kota_dirawat, aes(x = reorder(Jakarta, Jumlah),
                 y = Jumlah))+
  geom_bar(stat = "identity",
           fill = rainbow(6)) + theme_minimal()+
  geom_text(aes(label = Jumlah),
            vjust =-0.25,     color="black", size = 3.5)+
  labs(title = "Kasus Positif yang dirawat per kota",
       subtitle = "2 Januari 2021",
       x = "Bagian Jakarta", Y ="Jumlah kasus positif dan dirawat") +coord_flip()

Rata-rata kasus Covid-19 perkota dan kategori

library(scales)   
library(ggpubr)

plotdata <- rs_clean %>%
  group_by(nama_kota, kategori) %>%
  dplyr::summarize(mean_kasus = mean(jumlah))

plotdata$mean = round(plotdata$mean_kasus)

#plotdata = slice(plotdata, -c(1,7,13,23,29,35))
plotdata$kota = ifelse(plotdata$nama_kota == "JAKARTA UTARA", "Utara",
                       ifelse(plotdata$nama_kota == "JAKARTA BARAT" , "Barat",
                              ifelse(plotdata$nama_kota ==  "JAKARTA PUSAT", "Pusat",
                                     ifelse(plotdata$nama_kota == "JAKARTA TIMUR", "Timur",
                                            ifelse(plotdata$nama_kota =="JAKARTA SELATAN","Selatan", "P.Seribu"  )))))


ggplot(plotdata, aes(x = kota, y = mean))+
  geom_bar(
    aes(fill = kategori), stat = "identity", color = "white")+
  facet_wrap(~kategori) + 
  geom_text(aes(label=mean), vjust =-0.25,     color="black", size = 3.5)+
  labs(title = "Rata-rata kategori Pasien Covid-19 DKI Jakarta",
       subtitle= "2 Januari 2021",
       fill ="",
       x="Jumlah", y="Jakarta bagian") +
  guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)+  # untuk menghilangkan legend :)
  coord_flip()