Pada kesempatan kali ini, saya akan menggunakan data Susenas pada link berikut
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
library(dplyr)
##
## 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)
## Warning: package 'tidyverse' was built under R version 4.3.2
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ✔ readr 2.1.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART2.csv",sep=";")
data <- subset(data, select = c(R1420A, R1420B, R1420C, R1420D, R1420E, R1420F, R1420G, R1420H))
head(data)
## R1420A R1420B R1420C R1420D R1420E R1420F R1420G R1420H
## 1 0 0 0 0 0 0 0 0
## 2 0 0 0 0 0 0 0 0
## 3 0 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0
data_long <- pivot_longer(data, cols = starts_with("R1420"), names_to = "kategori", values_to = "nilai")
head(data_long)
## # A tibble: 6 × 2
## kategori nilai
## <chr> <int>
## 1 R1420A 0
## 2 R1420B 0
## 3 R1420C 0
## 4 R1420D 0
## 5 R1420E 0
## 6 R1420F 0
data_long <- data_long %>% filter(nilai == 1)
head(data_long)
## # A tibble: 6 × 2
## kategori nilai
## <chr> <int>
## 1 R1420A 1
## 2 R1420E 1
## 3 R1420F 1
## 4 R1420A 1
## 5 R1420G 1
## 6 R1420A 1
data_long$kategori <- recode(data_long$kategori, "R1420A" = "sereal, akar, dan umbi", "R1420B" = "kacang-kacangan", "R1420C" = "turunan susu", "R1420D" = "daging, ikan", "R1420E" = "telur", "R1420F" = "buah sayur vitamin A", "R1420G" = "buah sayur lainnya", "R1420H" = "makanan ringan")
data_long <- data_long %>% group_by(kategori) %>% summarise(jumlah = n())
print(data_long)
## # A tibble: 8 × 2
## kategori jumlah
## <chr> <int>
## 1 buah sayur lainnya 1051
## 2 buah sayur vitamin A 1215
## 3 daging, ikan 998
## 4 kacang-kacangan 1087
## 5 makanan ringan 867
## 6 sereal, akar, dan umbi 1311
## 7 telur 1163
## 8 turunan susu 337
data_long %>%
arrange(desc(jumlah)) %>%
ggplot() +
geom_segment(aes(x = fct_reorder(kategori, jumlah), xend = fct_reorder(kategori, jumlah), y = 0, yend = jumlah), color = "blue") +
geom_point(aes(x = fct_reorder(kategori, jumlah), y = jumlah), color = "red", size = 2) +
scale_y_continuous(expand = c(0, 0)) +
coord_flip() +
ggtitle("Jumlah Makanan dan Minuman yang Dikonsumsi Baduta Berdasarkan Kategori") +
xlab("Kategori") +
ylab("Jumlah Bayi") +
theme_light() +
theme(plot.title = element_text(hjust = 0.5))
Pada visualisasi diatas, saya memvisualisasikan jumlah makanan dan minuman yang dikonsumsi oleh bayi dua tahun (baduta) berdasarkan kategori yang dikonsumsi. hasilnya kategori sereal, akar, dan umbi menjadi yang paling banyak dikonsumsi oleh baduta. Namun, ternyata kategori turunan susu menjadi kategori yang paling jarang dikonsumsi oleh baduta. Hal ini sangat disayangkan sebab susu bisa membantu supaya sang anak bisa menjadi lebih sehat dan mendukung pertumbuhan fisik dari baduta itu sendiri.
data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\Tugas akhir visdat\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv",sep=";")
data1 <- data[,c("R105","R616")]
data2 <- data[,c("R105","R615")]
head(data1)
## R105 R616
## 1 2 0
## 2 2 0
## 3 2 5
## 4 2 5
## 5 1 0
## 6 1 0
head(data2)
## R105 R615
## 1 2 0
## 2 2 0
## 3 2 5
## 4 2 5
## 5 1 0
## 6 1 0
data1 <- data1[data1$R616 != 0,]
data1 <- data1[data1$R616 != 5,]
head(data1)
## R105 R616
## 61 1 1
## 87 1 1
## 146 2 1
## 172 2 1
## 188 2 1
## 235 2 1
data2 <- data2[data2$R615 != 0,]
data2 <- data2[data2$R615 != 5,]
data2$R615 <- ifelse(data2$R615 == 2,1,data2$R615)
head(data2)
## R105 R615
## 55 1 1
## 87 1 1
## 138 1 1
## 154 1 1
## 155 1 1
## 172 2 1
)
#filter data1 dimana R105 bernilai 1 kedalam variabel datapip_kota
datapip_kota <- data1[data1$R105 == 1,]
#filter data1 dimana R105 bernilai 2 kedalam variabel datapip_desa
datapip_desa <- data1[data1$R105 == 2,]
#filter data2 dimana R105 bernilai 1 kedalam variabel datakip_kota
datakip_kota <- data2[data2$R105 == 1,]
#filter data2 dimana R105 bernilai 2 kedalam variabel datakip_desa
datakip_desa <- data2[data2$R105 == 2,]
Daerahpip <- rbind(datapip_kota,datapip_desa)
table(Daerahpip$R105)
##
## 1 2
## 1983 1108
Daerahkip <- rbind(datakip_kota,datakip_desa)
table(Daerahkip$R105)
##
## 1 2
## 1945 1126
Daerahpip$R105 <- factor(Daerahpip$R105,levels=c(1,2),labels=c("Perkotaan","Pedesaan"))
table(Daerahpip$R105)
##
## Perkotaan Pedesaan
## 1983 1108
Daerahkip$R105 <- factor(Daerahkip$R105,levels=c(1,2),labels=c("Perkotaan","Pedesaan"))
table(Daerahkip$R105)
##
## Perkotaan Pedesaan
## 1945 1126
names(Daerahpip)[names(Daerahpip)=="R105"] <- "Keterangan"
names(Daerahkip)[names(Daerahkip)=="R105"] <- "Keterangan"
library(ggplot2)
#barchart untuk PIP
ggplot(Daerahpip,aes(x=Keterangan,fill=Keterangan))+
geom_bar()+
geom_text(stat='count',aes(label=..count..),vjust=-0.5)+
labs(title="Frekuensi Penerima Program PIP",x="Daerah",y="Frekuensi")+
scale_fill_manual(values=c("pink","lightgreen"))
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
#barchart untuk KIP
ggplot(Daerahkip,aes(x=Keterangan,fill=Keterangan))+
geom_bar()+
geom_text(stat='count',aes(label=..count..),vjust=-0.5)+
labs(title="Frekuensi Penerima KIP",x="Daerah",y="Frekuensi")+
scale_fill_manual(values=c("pink","lightgreen"))
Pada bar chart pertama, saya memvisualisasikan antara frekuensi dari
penerima program PIP di daerah perkotaan dan pedesaan. Dari chart
tersebut, kita bisa mendapatkan informasi bahwa penerima program PIP
terbanyak ada di daerah perkotaan dengan selisih frekuensi yang lumayan
signifikan yaitu menyentuh 800 lebih orang.
Hal ini juga sama ketika kita melihat frekuensi penerima KIP pada bar
chart kedua, kita bisa melihat juga bahwa penerima KIP terbanyak ada di
daerah perkotaan. Hal ini tentu menggambarkan bahwa program PIP dan KIP
masih belum merata hingga ke pedesaan hal ini bisa dibuktikan dengan
selisih yang lumayan signifikan antara penerima PIP dan KIP di daerah
perkotaan dan pedesaan
Visualisasi ini digunakan untuk melihat bagaimana kontribusi setiap sub-populasi terhadap sub-populasi yang lain atau populasinya itu sendiri.
Contoh pertanyaan yang dapat dijawab melalui visualisasi komposisi.
Bagaimana persentase pengguna internet berdasarkan usia di sebuah negara?
Apa distribusi relatif jenis pekerjaan di sebuah industri?
Bagaimana distribusi relatif kekayaan di antara kelompok pendapatan di suatu wilayah?
library(tidyverse)
library(ggmosaic)
## Warning: package 'ggmosaic' was built under R version 4.3.3
library(ggridges)
library(GGally)
## Warning: package 'GGally' was built under R version 4.3.2
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
##
## Attaching package: 'GGally'
## The following object is masked from 'package:ggmosaic':
##
## happy
library(plotly)
## Warning: package 'plotly' was built under R version 4.3.2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\Tugas akhir visdat\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv",sep=";")
data1 <- data[,c("R105","R616","R615")]
head(data1)
## R105 R616 R615
## 1 2 0 0
## 2 2 0 0
## 3 2 5 5
## 4 2 5 5
## 5 1 0 0
## 6 1 0 0
data1 <- data1[data1$R616 != 0,]
head(data1)
## R105 R616 R615
## 3 2 5 5
## 4 2 5 5
## 9 2 5 5
## 12 1 5 5
## 13 1 5 5
## 14 1 5 5
#ubah nilai 2 menjadi 1 pada variabel R615
data1$R615 <- ifelse(data1$R615 == 2,1,data1$R615)
#jika R616 = 1 dan R615 = 5 maka buat variabel bernama Keterangan dengan nilai "penerima pip"
data1$Keterangan <- ifelse(data1$R616 == 1 & data1$R615 == 5,"PIP",NA)
#jika R616 = 5 dan R615 = 1 maka buat variabel bernama Keterangan dengan nilai "penerima kip
data1$Keterangan <- ifelse(data1$R616 == 5 & data1$R615 == 1,"KIP",data1$Keterangan)
#jika R616 = 1 dan R615 = 1 maka buat variabel bernama Keterangan dengan nilai "penerima pip dan kip"
data1$Keterangan <- ifelse(data1$R616 == 1 & data1$R615 == 1,"PIP dan KIP",data1$Keterangan)
#jika R616 = 5 dan R615 = 5 maka buat variabel bernama Keterangan dengan nilai "bukan penerima pip dan kip"
data1$Keterangan <- ifelse(data1$R616 == 5 & data1$R615 == 5,"Bukan Penerima",data1$Keterangan)
head(data1)
## R105 R616 R615 Keterangan
## 3 2 5 5 Bukan Penerima
## 4 2 5 5 Bukan Penerima
## 9 2 5 5 Bukan Penerima
## 12 1 5 5 Bukan Penerima
## 13 1 5 5 Bukan Penerima
## 14 1 5 5 Bukan Penerima
#ubah type data R105 menjadi factor
data1$R105 <- factor(data1$R105,levels=c(1,2),labels=c("Perkotaan","Pedesaan"))
#ubah R105 menjadi variabel Daerah
names(data1)[names(data1)=="R105"] <- "Daerah"
head(data1)
## Daerah R616 R615 Keterangan
## 3 Pedesaan 5 5 Bukan Penerima
## 4 Pedesaan 5 5 Bukan Penerima
## 9 Pedesaan 5 5 Bukan Penerima
## 12 Perkotaan 5 5 Bukan Penerima
## 13 Perkotaan 5 5 Bukan Penerima
## 14 Perkotaan 5 5 Bukan Penerima
#stacked bar chart
data1 %>%
ggplot(aes(x = Keterangan, fill = Daerah)) +
geom_bar() +
labs(title = "Stacked Bar Chart: Penerima Program PIP dan KIP",
x = "Program", y = "Frekuensi") +
scale_fill_brewer(palette = "Set2")
#100 percent stacked bar chart
data1 %>%
ggplot(aes(x = Keterangan, fill = Daerah)) +
geom_bar(position = "fill") +
labs(title = "100 Percent Stacked Bar Chart: Penerima Program PIP dan KIP",
x = "Program", y = "Persentase") +
theme(axis.text.x = element_text(angle = 0, hjust = 0.5)) +
scale_fill_brewer(palette = "Set2")
Pada stacked bar chart diatas, saya memvisualisasikan persentase dan frekuensi penerima program KIP dan PIP berdasarkan daerah penerimanya. Hasilnya kita dapatkan bahwa frekuensi terbesar, yaitu Non Penerima pada daerah perkotaan dengan frekuensi sekitar 25 ribu orang atau sekitar 75% dari seluruh Non Penerima.
Akan tetapi, sangat disayangkan untuk penerima KIP, PIP, dan penerima keduanya masih sangat sedikit. Hal ini bisa terjadi mungkin karena tidak meratanya distribusi program tersebut sehingga terjadi perbedaan frekuensi yang sangat signifikan antara Penerima dan Non Penerima. Hal tersebut juga bisa terjadi karena minimnya pengetahuan terhadap program tersebut. Saya berasumsi demikian sebab jika dilihat persentase dari penerima KIP, PIP, dan penerima keduanya sebagian besar tinggal di daerah perkotaan bahkan penerima program tersebut di daerah pedesaan tidak ada yang menembus 50%.
data <- read.csv("D:\\IPB\\Statistika Sem 4\\Visualisasi Data\\Tugas akhir visdat\\2023 Maret JABAR - SUSENAS KOR INDIVIDU PART1.csv",sep=";")
data_pie <- subset(data, select = c(R704))
head(data_pie)
## R704
## 1 3
## 2 3
## 3 3
## 4 0
## 5 3
## 6 1
data_pie<- data_pie %>% filter(R704 != 0)
head(data_pie)
## R704
## 1 3
## 2 3
## 3 3
## 4 3
## 5 1
## 6 1
data_pie <- data_pie %>% group_by(R704) %>% summarise(jumlah = n())
print(data_pie)
## # A tibble: 4 × 2
## R704 jumlah
## <int> <int>
## 1 1 35135
## 2 2 12001
## 3 3 18985
## 4 4 3211
data_pie <- rename(data_pie, kegiatan = R704)
data_pie$kegiatan <- recode(data_pie$kegiatan, "1" = "bekerja", "2" = "sekolah", "3" = "mengurus rumah tangga", "4" = "lainnya selain kegiatan pribadi")
print(data_pie)
## # A tibble: 4 × 2
## kegiatan jumlah
## <chr> <int>
## 1 bekerja 35135
## 2 sekolah 12001
## 3 mengurus rumah tangga 18985
## 4 lainnya selain kegiatan pribadi 3211
#dalam bentuk jumlah
data_pie %>%
ggplot(aes(x = "", y = jumlah, fill = kegiatan)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
ggtitle("Kegiatan Selama Seminggu Terakhir") +
scale_fill_brewer(palette = "Set3") +
theme_void() +
theme(legend.position = "right") +
theme(plot.title = element_text(hjust = 0.5, size = 15)) +
geom_text(aes(label = jumlah), position = position_stack(vjust = 0.5))
#dalam bentuk persentase
data_pie %>%
ggplot(aes(x = "", y = jumlah, fill = kegiatan)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
ggtitle("Kegiatan Selama Seminggu Terakhir") +
scale_fill_brewer(palette = "Set3") +
theme_void() +
theme(legend.position = "right") +
theme(plot.title = element_text(hjust = 0.5, size = 15)) +
geom_text(aes(label = paste0(round(jumlah/sum(jumlah)*100, 1), "%")), position = position_stack(vjust = 0.5))
Dari chart diatas, saya memvisualisasikan komposisi kegiatan yang dilakukan selama seminggu terakhir. Kita mendapat informasi dari chart diatas bahwa kegiatan yang paling banyak dilakukan adalah bekerja disusul dengan mengurus rumah tangga. Kegiatan yang paling jarang dilakukan selama seminggu terakhir adalah kegiatan lainnya selain kegiatan pribadi.
Merupakan teknik visualisasi untuk mengetahui sebaran data sehingga dapat membantu untuk melihat rentang data, mendeteksi outlier, mendeteksi keberadaan kelompok, dll.
library(tidyverse)
library(ggridges)
library(GGally)
library(plotly)
data <- read.csv("D:/IPB/Statistika Sem 4/Visualisasi Data/2023 Maret JABAR - SUSENAS KOR Rumah Tangga.csv",sep=";")
head(data)
## X URUT PSU SSU WI1 WI2 R101 R102 R105 NUINFORT R1701 R1702 R1703
## 1 0 500001 12448 123442 12435 123427 32 7 2 2 5 5 5
## 2 1 500002 31373 311039 31360 311024 32 72 1 1 1 1 1
## 3 2 500003 12092 119908 12079 119893 32 6 2 2 5 5 5
## 4 3 500004 31135 308689 31122 308674 32 72 1 2 5 5 5
## 5 4 500005 33988 336798 33975 336783 32 77 1 1 5 5 5
## 6 5 500006 34062 337531 34049 337516 32 77 1 1 5 5 5
## R1704 R1705 R1706 R1707 R1708 NUINFORT1 R1801 R1802 R1803 R1804 R1805 R1806
## 1 5 5 5 5 5 2 1 1 5 110 5 2
## 2 5 5 5 5 5 1 1 1 1 35 5 3
## 3 5 5 5 5 5 2 1 1 1 96 5 2
## 4 5 5 5 5 5 2 2 1 1 300 5 2
## 5 5 5 5 5 5 1 1 3 0 84 1 2
## 6 5 5 5 5 5 1 1 1 1 300 1 2
## R1807 R1808 R1809A R1809B R1809C R1809D R1809E R1810A R1810B R1811A R1811B
## 1 1 4 2 1 1 98 7 4 2 2 998
## 2 1 6 1 1 4 0 0 4 2 1 0
## 3 1 2 1 1 1 20 7 5 1 1 0
## 4 1 2 1 1 1 98 7 2 0 2 10
## 5 1 2 1 1 1 98 7 1 0 1 0
## 6 1 2 1 1 1 98 7 1 0 1 0
## R1812 R1813A R1813B R1813C R1813D R1813E R1814A R1814B R1815A R1815B R1815C
## 1 5 5 5 5 5 5 4 2 1 1 1
## 2 5 5 5 5 5 5 4 2 1 1 1
## 3 5 5 5 5 5 5 5 1 1 1 5
## 4 5 5 5 5 5 5 5 2 1 1 1
## 5 5 5 5 5 5 5 4 2 1 1 1
## 6 5 5 5 5 5 5 3 0 1 1 1
## R1816 R1816B1 R1816B2 R1816B3 R1817 R1901A R1901B R1901C R1901D R1901E R1901F
## 1 1 1 0 0 4 1 5 5 5 5 5
## 2 1 1 0 0 4 5 5 5 5 5 5
## 3 1 1 1 0 4 5 5 5 5 5 5
## 4 1 2 0 0 4 1 5 5 5 5 5
## 5 1 1 0 0 2 5 5 5 5 5 5
## 6 1 3 0 0 3 5 5 5 5 5 5
## R1901G R1901H R1901I R1901J R2001A R2001B R2001C R2001D R2001E R2001F R2001G
## 1 5 5 5 5 5 1 5 5 5 1 5
## 2 5 5 5 5 5 5 5 5 5 5 5
## 3 5 5 5 5 5 1 5 5 5 5 5
## 4 5 5 5 5 5 1 5 5 5 5 5
## 5 5 5 5 5 1 1 5 5 5 1 5
## 6 5 5 5 5 1 1 1 1 1 1 1
## R2001H R2001I R2001J R2001K R2001L R2001M R2002_A R2002_B R2002_C R2002_D
## 1 5 5 5 5 5 1 A
## 2 5 5 5 5 5 1 A
## 3 1 5 5 5 5 1 A
## 4 1 5 5 5 5 1 A
## 5 1 1 1 1 1 5
## 6 1 1 5 1 1 1 A
## R2101A R2101B R2101C R2201A2 R2201A3 R2201B2 R2201B3 R2201C2 R2201C3 R2201D2
## 1 2 0 2 1 1 5 0 5 0 5
## 2 1 2 0 5 0 5 0 5 0 5
## 3 1 1 0 5 0 5 0 5 0 5
## 4 1 1 0 5 0 5 0 5 0 5
## 5 1 2 0 5 0 5 0 5 0 1
## 6 4 0 0 5 0 5 0 5 0 5
## R2201D3 R2201E2 R2201E3 R2201F2 R2201F3 R2202 R2203 R2204A R2204B R2204C_A
## 1 0 5 0 5 0 2 1 1 4 A
## 2 0 5 0 5 0 1 5 0 0
## 3 0 5 0 5 0 5 5 0 0
## 4 0 5 0 5 0 5 5 0 0
## 5 1 5 0 5 0 5 5 0 0
## 6 0 5 0 5 0 5 5 0 0
## R2204C_B R2204C_C R2204C_D R2204C_E R2204C_F R2204C_G R2205A R2206A R2207
## 1 NA 5 5 1
## 2 NA 5 5 1
## 3 NA 5 5 1
## 4 NA 5 5 5
## 5 NA 5 5 5
## 6 NA 5 5 5
## R2208A2 R2208B2 R2208BI2 R2208C2 R2208D2 R2208EIB2 R2208EIIB2 R2208EIT2
## 1 5 0 0 0 0 0 0 0
## 2 5 0 0 0 0 0 0 0
## 3 5 0 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0
## R2208EIIT2 R2208EK2 R2208ENU2 R2208EIL2 R2208EIIL2 R2208ES2 R2208F2 R2208G2
## 1 0 0 0 0 0 0
## 2 0 0 0 0 0 0
## 3 0 0 0 0 0 0
## 4 0 0 0 0 0 0
## 5 0 0 0 0 0 0
## 6 0 0 0 0 0 0
## R2208H2 R2208A3 R2208B3 R2208BI3 R2208C3 R2208D3 R2208EIB3 R2208EIIB3
## 1 0 5 0 0 0 0 0 0
## 2 0 5 0 0 0 0 0 0
## 3 0 5 0 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0
## R2208EIT3 R2208EIIT3 R2208EK3 R2208ENU3 R2208EIL3 R2208EIIL3 R2208ES3 R2208F3
## 1 0 0 0 0 0 0
## 2 0 0 0 0 0 0
## 3 0 0 0 0 0 0
## 4 0 0 0 0 0 0
## 5 0 0 0 0 0 0
## 6 0 0 0 0 0 0
## R2208G3 R2208H3 R2208A4 R2208B4 R2208BI4 R2208C4 R2208D4 R2208EIB4 R2208EIIB4
## 1 0 0 1 1 600000 3 1 200000 17
## 2 0 0 5 0 0 0 0 0 0
## 3 0 0 1 1 400000 2 1 240000 20
## 4 0 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0
## R2208EIT4 R2208EIIT4 R2208EK4 R2208ENU4 R2208EIL4 R2208EIIL4 R2208ES4
## 1 40000 16 DAGING AYAM 59 70000 2 KG
## 2 0 0 0 0 0
## 3 60000 36 KENTANG 13 100000 5 KG
## 4 0 0 0 0 0
## 5 0 0 0 0 0
## 6 0 0 0 0 0
## R2208F4 R2208G4 R2208H4 R2208A5 R2208B5 R2208BI5 R2208C5 R2208D5 R2208EIB5
## 1 1 1 1 5 0 0 0 0 0
## 2 0 0 0 1 1 600000 3 1 110000
## 3 1 5 1 5 0 0 0 0 0
## 4 0 0 0 0 0 0 0 0 0
## 5 0 0 0 0 0 0 0 0 0
## 6 0 0 0 0 0 0 0 0 0
## R2208EIIB5 R2208EIT5 R2208EIIT5 R2208EK5 R2208ENU5 R2208EIL5
## 1 0 0 0 0 0
## 2 10 26000 16 DAGING AYAM RAS 59 32000
## 3 0 0 0 0 0
## 4 0 0 0 0 0
## 5 0 0 0 0 0
## 6 0 0 0 0 0
## R2208EIIL5 R2208ES5 R2208F5 R2208G5 R2208H5 R2209A R2209B R2209C R2210A
## 1 0 0 0 0 5 5 5 5
## 2 1 KG 1 1 1 1 5 5 5
## 3 0 0 0 0 1 5 5 5
## 4 0 0 0 0 5 5 5 5
## 5 0 0 0 0 5 5 5 1
## 6 0 0 0 0 5 5 5 5
## R2210B1 R2210B2 R2210B3 R2210B4 R2210B5 R2211A R2211A1 R2211A2 R2211A3
## 1 5 5 5 5 5 1 600000 0 0
## 2 5 5 5 5 5 5 0 0 0
## 3 5 5 5 5 5 5 0 0 0
## 4 5 5 5 5 5 5 0 0 0
## 5 5 5 5 5 5 5 0 0 0
## 6 5 5 5 5 5 5 0 0 0
## R2211A4 R2211A5 R2211B R2211B1 R301 R302 R303 R304 R305 FWT
## 1 0 0 5 0 4 0 4 3 1 45.488.910.141.175
## 2 0 0 5 0 2 0 2 2 0 1.723.768.210.467.770
## 3 0 0 5 0 3 0 3 3 1 2.415.786.610.685.150
## 4 0 0 5 0 7 1 6 5 1 9.367.356.293.854.040
## 5 0 0 5 0 3 0 3 3 1 1.222.175.562.382.740
## 6 0 0 5 0 2 0 2 2 0 763.808.540.079.965
data2 <- data.frame(Banyak = data$R2208EIIB2)
data3 <- data.frame(Banyak = data$R2208EIIB3)
data2 <- filter(data2, Banyak != 0)
data3 <- filter(data3, Banyak != 0)
data2$Banyak <- as.numeric(data2$Banyak)
data3$Banyak <- as.numeric(data3$Banyak)
head(data2)
## Banyak
## 1 10
## 2 13
## 3 10
## 4 20
## 5 10
## 6 7
head(data3)
## Banyak
## 1 10
## 2 13
## 3 10
## 4 1
## 5 7
## 6 10
#boxplot dari data2
ggplot(data2)+
geom_boxplot(aes(y=Banyak),fill="lightblue") +
labs(title="Banyak Beras yang dibeli Pada Bulan Februari 2023", y="Banyak (kg)")
#density plot dari data2
ggplot(data2)+
geom_density(aes(x=Banyak,fill = "Kuantitas Beras"),color="pink", alpha=0.5) +
labs(title="Banyak Beras yang dibeli Pada Bulan Februari 2023", x="Banyak (kg)", y="") +
scale_fill_discrete(name="Keterangan", labels=c("Kuantitas Beras"))
Boxplot tersebut menunjukkan bahwa garis tengah (Median data) berada di angka data 10. Hal ini menujukkan bahwa 50% data pengamatan lebih kecil atau sama dengan nilai pada data 10 ini. Terlihat bahwa hanya terdapat Q2 sampai Q3. Hal ini menunjukkan bahwa data tersebar di titik tengah 10 dan menyebar sampai ke kuartil ke 3. Selain itu terlihat whisker plot yang menunjukkan data tersebar sampai ke beberapa titik dari atas dan bawah dimana data masih belom dikategorikan sebagai outlier. Hal ini dapat dilihat bahwa terdapat beberapa pencilan atas dan lebih banyak pencilan atas. Hal ini kemudian dapat dikategorikan dalam denistiy plot.
Pada density plot tersebut dapat dilihat korelasi pada boxplot. DImana kebanyakan data berada di frekuensi 10. Dan kemudian tersebar secara tidak merata ke beberapa frekuensi. Sampai ke 30 dan terdapat pencilan di data ke 40. Median pada data di boxplot yang mengarah ke 10 dapat dibuktikan disini. Dimana data sebagian besar berada di 10. Hal ini menunjukkan bahwa data akan memusat di frekuensi ke 10. Dapat dilihat pula pencilan di data ke 20 sampai ke 40. Hal ini berkaitan dengan data yang menyebar dan memadat di frekuensi ke 10.
#boxplot dari data3
ggplot(data3)+
geom_boxplot(aes(y=Banyak),fill="lightblue") +
labs(title="Banyak Beras yang dibeli Pada Bulan Januari 2023", y="Banyak (kg)")
#density plot dari data3
ggplot(data3)+
geom_density(aes(x=Banyak,fill = "Kuantitas Beras"),color="pink", alpha=0.5) +
labs(title="Banyak Beras yang dibeli Pada Bulan Januari 2023", x="Banyak (kg)", y="") +
scale_fill_discrete(name="Keterangan", labels=c("Kuantitas Beras"))
Dari Boxplot tersebut dapat terlihat mediannya saja dimana tidak terdapat box untuk quartil 1 dan quartil 3. Hal ini menunjukkan bahwa kebanyakan data beras yang dibeli pada Bulan Januari 2023 berada di angka 10 kg. Kemudian data akan menyebar dengan pencilan dimulai dari 10 ke bawah dan 10 sampai ke 30. Kebanyakan data pencilan berada di range 10 sampai ke 30, dan tidak menandai adanya whisker plot. Hal ini menunjukkan bahwa data tidak menyebar selain di median, dan kemudian data akan tersebar sebagai pencilan.
Pada Density plot ini juga menunjukkan bahwa frekuensi data juga seperti pada di Bulan Januari yaitu berada di frekunsi 10, data pada frekuensi 10 juga menyebar lebih luas. Dimana hal ini bahwa sebagian besar data akan berada di data dengan frekuensi 10. Kemudian data akan mengecil ke kiri dan ke kanan. Dari data-data dibawah 10, dan 10 sampai ke 40.