Pendahuluan
Pada sesi ini saya akan melakukan analisis mengenai rata-rata pengeluaran perkapita berdasarkan data Rata-rata Pengeluaran Perkapita Seminggu Menurut Kelompok Rokok dan Tembakau per Kabupaten/Kota periode 2018-2021 yang diterbitkan oleh Badan Pusat Statistik(BPS).
Untuk menyamakan pemahaman konsep mengenai data yang akan saya gunakan, maka ada baiknya saya menjabarkan pengertian sesuai dengan judul data tersebut diatas yang dapat diartikan sebagai: Besar pengeluaran rata-rata dalam satu minggu yang dikeluarkan per individu untuk konsumsi rokok yang dihitung dalam nilai rupiah di tiap kabupaten/kota di wilayah Indonesia.
Menyiapkan Data dan Library
#library preparation
library(prettydoc)
library(readxl)
library(tidyverse)
library(glue)
library(ggplot2)
library(plotly)
library(scales)
library(wesanderson)Data yang akan digunakan merupakan data dengan format file xlsx,
sehingga saya akan menggunakan fungsi read_xlsx dari
package readxl. Sebelum melakukan fungsi
read_xlsx, ada baiknya kita melakukan inspeksi untuk
melihat struktur file. Sesuai dengan gambar tampilan data, terlihat
bahwa isi data terdapat pada sheet pertama sehingga parameter
sheet tidak diperlukan, namun begitu kita tidak memerlukan
row 1, karena row isi berisi judul data saja dan kita tidak membutuhkan
dalam proses analisis.
Dapat diperhatikan bahwa nama kolom dimulai dari row 2. Sehingga saya
akan menambahkan parameter skip dan menentukan argumen
= 1 sehingga pembacaan data dimulai langsung kepada row 2
(nama kolom).
Read Data
# read data
rokok <- read_xlsx("BPS Dataset/Rata-rata Pengeluaran Perkapita Seminggu Menurut Kelompok Rokok dan Tembakau Per Kabupaten_kota.xlsx",skip = 1)Setelah membaca data dan menyimpan data dalam sebuah variable (dalam
kasus ini saya menyimpan data dengan nama rokok), saya akan
melakukan skimming data dengan melakukan function
head() dan tail untuk menentukan Business
Question yang akan saya analisis.
# Cek isi awal data
head(rokok)# Cek akhir isi data
tail(rokok)Sesuai dengan tampilan data diatas, poin-poin informasi yang diperoleh adalah:
| No | Poin Informasi |
|---|---|
| 1 | Nama wilayah (dalam kabupaten/kota) |
| 2 | Kategori tipe rokok |
| 3 | Informasi tahun (menentukan nilai rata-rata pengeluaran pada periode tahun tertentu) |
| 4 | Besar nilai pengeluaran rata-rata perkapita per wilayayah |
Objectives
Sesuai dengan tampilan head dan tail, serta informasi yang didapat dari skimming, berikut Business Question yang saya peroleh dan akan saya analisis:
- Penyebaran pengeluaran rata-rata konsumsi gabungan (rokok dan tembakau) di tiap periode tahun
- Analisa wilayah dengan pengeluaran rata-rata konsumsi gabungan (rokok dan tembakau) tertinggi selama periode 2018 - 2019
- Analisa pengeluaran rokok berdasarkan kategorinya di setiap periode tahun
- Daerah-daerah dengan nilai rata-rata pengeluaran rokok/tembakau setiap kategorinya pada 2021
Data Wrangling
Sesuai dengan tampilan data dalam head maupun
tail terdapat beberapa poin yang harus disesuaikan pada
table sebelum membersihkan isi data. Berikut poin-poin yang harus
disesuaikan dari bentuk table:
- Informasi tahun masuk kedalam isi data (row) bukan nama kolom
- Terdapat nama kolom dengan angka (..1, …3, …5 dst) akibat dari merge
kolom dari format
xlsx - 4 row terakhir tidak digunakan karena berisi URL dari sumber data.
Sehingga berikut tahap-tahap yang diperlukan untuk menyesuaikan table menjadi struktur yang lebih baik:
- Drop 4 rows terakhir
- melakukan transpose
- mengubah data yang telah di transpose menjadi dataframe
- mengisi kolom 1 dan 2 pada baris 1 , 2 sesuai dengan nama yang akan digunakan untuk nama kolom
- mengubah row 1 menjadi nama kolom
- Mengahpus row 1 (karena duplicated dengan nama kolom)
- Mengubah rownames menjadi sebuah kolom
- Mengisi data (..1, …3, …5 dst) dengan kategori rokok
- Reshaping dataframe dengan pivot_longer
#Drop 4 row terakhir
rokok <- rokok[-(516:519),]
# Transpose data dan menyimpan kedalam variable baru dengan bentuk dataframe
rokok1 <- data.frame(t(rokok))
head(rokok1)Transpose mengubah antar kolom dan baris dan hasilnya menjadi matrix.
Setelah dilakukan transpose, saya mengaplikasikan function
data.frame sehingga dalam kasus ini nama tipe rokok saat
ini menjadi rownames dari dataframe rokok1. Setelah menjadi
dataframe dengan tampilan seperti diatas, saya akan mengisi kolom 1
(X1), row 1 dengan Tahun. Karena nantinya semua row 1 akan
saya ubah menjadi nama kolom.
# Mengisi kolom 1 row 1, dengan nilai yang akan menjadi nama kolom
rokok1[1,1] <- "Tahun"
# Melakukan assign agar semua nama kolom diambil dari row 1
names(rokok1) <- rokok1[1,]
head(rokok1)# Drop row ke-1
rokok1 <- rokok1[-1,]
# Mengubah rownames menaadi kolom
rokok1 <- rownames_to_column(rokok1)
head(rokok1)Setelah rowname menjadi sebuah kolom, sekarang saya akan melakukan penyesuaian dengan kolom pertama yang berisi tipe-tipe rokok/tembakau. Sesuai dengan informasi dari table awal (bentuk xlsx) value yang berisi angka merupakan nama kolom yang sebelumnya di merge pada format xlsx. Sehingga saya akan mengganti nilai-nilai tersebut sesuai dengan nilai pada row sebelumnya.
# Mengubah nama kolom 1, menjadi kategori
names(rokok1)[1] <- "Kategori"
head(rokok1)# Menyesuaikan isi kolom Kategori
rokok1[1:2,1] <- "Total rokok dan tembakau"
rokok1[4, 1] <- "Rokok kretek filter"
rokok1[6, 1] <- "Rokok kretek tanpa filter"
rokok1[8, 1] <- "Rokok putih"
rokok1[10,1] <- "Tembakau"
rokok1[11:12,1] <- "Lainnya"
head(rokok1)Sebelum membersihkan isi data, terdapat satu penyesuaian yang akan
saya lakukan yaitu mengubah dimensi data sehingga tidak memiliki kolom
yang terlalu banyak. Tentu mengubah dimensi dataframe menjadi bentuk
yang lebih sesuai akan membantu dalam proses analisis. Dengan demikian
saya akan melakukan function pivot_longer untuk mengubah
dimensi dataframe.
# Mengubah dimensi dengan pivot longer
rokok1 <- pivot_longer(data = rokok1, #dataframe yang akan diubah
cols = -c(Kategori, Tahun), #kolom yang tidak dilakukan perubahan
names_to = "Kota/Kabupaten", # Nama kolom untuk menyimpan variable nama dari kolom yang dilebur
values_to = "avg") # Nama kolom yang akan kita pakai sebagai kolom berisi nilai-nilai dari rows yang dilebur
head(rokok1)Mengubah Tipe Data
# Mengubah tipe data ke faktor / kategorikal
rokok1[, c("Kategori","Tahun")] <- lapply(rokok1[, c("Kategori", "Tahun")], as.factor)
#Mengubah tipe data ke numeric
rokok1$avg <- as.numeric(rokok1$avg)
summary(rokok1)>> Kategori Tahun Kota/Kabupaten
>> Lainnya :1028 2018:3084 Length:6168
>> Rokok kretek filter :1028 2019:3084 Class :character
>> Rokok kretek tanpa filter:1028 Mode :character
>> Rokok putih :1028
>> Tembakau :1028
>> Total rokok dan tembakau :1028
>>
>> avg
>> Min. : 0.0
>> 1st Qu.: 191.5
>> Median : 1419.0
>> Mean : 5568.4
>> 3rd Qu.:11202.5
>> Max. :35389.0
>> NA's :273
Setelah melihat summary dari dataframe rokok1 terdapat
NA value sebanyak 273, treatment nilai NA akan saya lakukan setelah
menambahkan data tahun 2020 dan 2021.
Menambahkan data
Untuk data periode 2020 dan 2021 tersedia dalam file yang berbeda,
namun memiliki struktur isi data yang sama sehingga penyesuaian table
akan dilakukan tahap yang sama dan disimpan kedalam variable
rokok2.
#menyimpan data 2020 dan 2021 serta menyesuaikan bentuk table
rokok2 <- read_xlsx("BPS Dataset/Rata-rata Pengeluaran Perkapita Seminggu Menurut Kelompok Rokok dan Tembakau Per Kabupaten_kota (1).xlsx",skip = 1)
rokok2 <- rokok2[-(516:519),]
rokok2 <- data.frame(t(rokok2))
rokok2[1,1] <- "Tahun"
names(rokok2) <- rokok2[1,]
rokok2 <- rokok2[-1,]
rokok2 <- rownames_to_column(rokok2)
names(rokok2)[1] <- "Kategori"
rokok2[1:2,1] <- "Total rokok dan tembakau"
rokok2[4, 1] <- "Rokok kretek filter"
rokok2[6, 1] <- "Rokok kretek tanpa filter"
rokok2[8, 1] <- "Rokok putih"
rokok2[10,1] <- "Tembakau"
rokok2[11:12,1] <- "Lainnya"
rokok2 <- pivot_longer(data = rokok2,
cols = -c(Kategori, Tahun),
names_to = "Kota/Kabupaten",
values_to = "avg")
rokok2[, c("Kategori","Tahun")] <- lapply(rokok2[, c("Kategori","Tahun")], as.factor)
rokok2$avg <- as.numeric(rokok2$avg)
# Melihat head(rokok2)
head(rokok2)Menggabungkan data dengan rbind()
Setelah dataframe rokok2 disesuaikan, saya akan
menggabungkan dataframe rokok1 dan dataframe
rokok2 menjadi rokok.All
rokok.All <- rbind(rokok2, rokok1)
str(rokok.All)>> tibble [12,336 × 4] (S3: tbl_df/tbl/data.frame)
>> $ Kategori : Factor w/ 6 levels "Lainnya","Rokok kretek filter",..: 6 6 6 6 6 6 6 6 6 6 ...
>> $ Tahun : Factor w/ 4 levels "2020","2021",..: 1 1 1 1 1 1 1 1 1 1 ...
>> $ Kota/Kabupaten: chr [1:12336] "Simeulue" "Aceh Singkil" "Aceh Selatan" "Aceh Tenggara" ...
>> $ avg : num [1:12336] 17697 18408 18704 20164 25768 ...
# Menyesuaikan unrutan level pada kolom Tahun
rokok.All$Tahun <- factor(rokok.All$Tahun,
levels = c("2018", "2019", "2020", "2021"))Informasi Tambahan Kolom Kategori:
unique(rokok.All$Kategori)>> [1] Total rokok dan tembakau Rokok kretek filter
>> [3] Rokok kretek tanpa filter Rokok putih
>> [5] Tembakau Lainnya
>> 6 Levels: Lainnya Rokok kretek filter ... Total rokok dan tembakau
Total rokok dan tembakauk adalah nilai gabungan (dalam Rp) dari nilai:
- Rokok kretek filter
- Rokok kretek tanpa filter
- Rokok putih
- Tembakau
- Lainnya
Cek duplicated data dan NA value
any(duplicated(rokok.All))>> [1] FALSE
# tidak ada data duplicate# Melihat distribusi NA value pada kategori
rokok.All %>%
filter(is.na(avg)) %>%
group_by(Kategori) %>%
summarise(NA.total = n()) %>%
arrange(desc(NA.total))Sesuai dengan informasi distribusi NA value, saya berkesimpulan untuk
tidak merubah nilai NA dengan nilai lain atau 0, karena frekuensi nilai
NA (selain kategori Lainnya) tidak memiliki jumlah yang
signifikan pada tiap kategorinya sehingga untuk melakukan operasi
matematis saya akan menggunakan parameter na.rm.
Khusus kepada kategori Lainnya tidak akan dilakukan
analisis karena kurangnya data yang untuk dianalisis dan tidak ada
informasi mengenai apa yang termasuk kepada kategori lainnya dalam rokok
dan tembakau.
Analisis Data
Question 1
Penyebaran pengeluaran rata-rata konsumsi gabungan (rokok dan tembakau) ditiap periode tahun
# Menyiapkan dataframe yang relevan
avg.gabungan <- rokok.All %>%
filter(Kategori == "Total rokok dan tembakau") %>%
mutate(label = glue("
Rata-rata 2018-2021:
Rp {comma(median(avg))}"))
plot1 <- ggplot(avg.gabungan, aes(x = Tahun, y = avg)) +
geom_boxplot(outlier.colour = "red", col = "blue", show.legend = F) +
geom_hline(aes(yintercept = median(avg)), col = "red", linetype = 2) +
scale_y_continuous(labels = comma) +
coord_flip() +
labs(x = NULL, y = NULL,
title = "Penyebaran Konsumsi Rata-rata Mingguan Rokok & Tembakau",
subtitle = "Berdasarkan Tahun") +
theme_minimal() +
theme(plot.title = element_text(face = "bold"),
axis.line.x.bottom = element_line(colour = "grey"),
axis.line.y.left = element_line(colour = "grey"))
plot1
Insights
- Setiap tahunnya rata-rata pengeluaran mingguan rokok/tembakau mengalami peningkatan (dalam Rupiah). Hal ini mungkin dipengaruhi oleh harga rokok/tembakau yang juga naik tiap tahunnya
- Rata-rata pengeluaran tahun 2020 dan 2021 berada di atas rata-rata dalam periode 2018-2022
- Disetiap tahun terdapat pengeluaran yang jauh dari rata-rata (outlier) yang mana setiap titik merepresentasikan nilai rata-rata sebuah wilayah
untuk melihat detail dari penyebaran rata-rata mingguan, saya akan
memisahkan tiap boxplot ke dalam sebuah facet dan menggunakan
ggplotly agar nilai IQR dan min max setiap tahun dapat
mudah dibandingkan.
plotly1 <- ggplot(avg.gabungan, aes(x = Tahun, y = avg)) +
geom_boxplot(outlier.colour = "red", col = "blue", show.legend = F) +
geom_hline(aes(yintercept = median(avg), text = label), col = "red", linetype = 2) +
scale_y_continuous(labels = comma) +
facet_wrap(~Tahun, scales = "free") +
coord_flip() +
labs(x = NULL, y = NULL,
title = "Penyebaran Rata-rata Pengeluaran Mingguan Rokok & Tembakau",
subtitle = "Berdasarkan Tahun") +
theme_linedraw() +
theme(plot.title = element_text(face = "bold"),
plot.subtitle = element_text(lineheight = 30),
axis.text.y = element_blank(),
panel.grid = element_line(colour = "grey"),
)
ggplotly(plotly1, tooltip = "text")Insights
- Distribusi nilai dari tahun 2018 dan 2019 tidak jauh berbeda, namun nilai rata-rata 2019 mengalami kenaikan cukup tinggi dibandingkan tahun 2018 (dari Rp 15.161 ke 16.465).
- Tahun 2019 memiliki banyak nilai signifikan baik yang sangat tinggi maupun sangat rendah dari range(Rp 1.668 ke Rp 34.289)
- Distribusi rata-rata pengeluaran tahun 2021 semakin menyempit (tidak menunjukan variasi nilai yang banyak) dibandingkan tahun 2020. Dapat disimpulkan rata-rata pengeluaran mingguan konsumsi rokok di tahun 2021 memiliki nilai yang tidak jauh berbeda antar wilayah
- IQR (50% dari populasi rata-rata) pengeluaran tahun 2020 adalah dalam range Rp 13.958 - Rp 20.241
- IQR (50% dari populasi rata-rata) pengeluaran tahun 2021 adalah dalam range Rp 14.436 - Rp 21.205
Question 2
Analisa wilayah dengan pengeluaran rata-rata konsumsi gabungan (rokok dan tembakau) tertinggi selama periode 2018 - 2019
# Menyiapkan data yang relevan
topavg <- rokok.All %>%
filter(Kategori == "Total rokok dan tembakau") %>% # Hanya mengambil informasi Total
group_by(Tahun) %>%
arrange(desc(avg)) %>%
head(5) %>%
mutate(label = glue(
"Rata-raata Rp: {comma(avg)}
Tahun: {Tahun}"))
plot2 <- ggplot(topavg, aes(x = avg, y= reorder(`Kota/Kabupaten`, avg))) +
geom_col(aes(fill = avg, text = label), show.legend = F) +
scale_x_continuous(labels = comma) +
scale_fill_gradient(high = "#feca3c", low = "#42eae4") +
labs(x = NULL, y = NULL,
title = str_wrap("Rata-rata Tertinggi Konsumsi Mingguan Rokok & Tembakau", 40)) +
theme_light() +
theme(
plot.title = element_text(face = "bold", color = "white", size = 11, hjust = 0.5),
plot.background = element_rect(fill = "#065fae", color = "#065fae"),
axis.text = element_text(colour = "white", size= 11),
panel.grid = element_line(colour = "#065fae")
)
ggplotly(plot2, tooltip = "text")Insights
- Nilai tertinggi pengeluaran mingguan rata-rata perkapita adalah Rp 78.460 yaitu pada tahun 2021 di Kab/Kota Puncak Jaya
- Sedangkan nilai tinggi lainnya berada pada range RP 34.604 - Rp 41.965 yang terjadi pada tahun 2021 (kecuali pada kep. Seribu yang terjadi pada tahun 2018)
Question 3
Analisa pengeluaran rokok berdasarkan kategorinya di setiap periode tahun
# Menyesuaikan data yang relevan
avgCategory <- rokok.All %>%
filter(Kategori != "Total rokok dan tembakau") %>%
group_by(Kategori, Tahun) %>%
summarise(avg = round(mean(avg, na.rm = T),2)) %>%
mutate(label = glue(
"Tahun: {Tahun}
Rata-rata Rp: {comma(avg)}"
))
# Plotting
plot3 <- ggplot(avgCategory, aes(x = avg, y = reorder(Kategori, avg), fill = Tahun)) +
geom_col(position = "dodge2", show.legend = F, aes(text = label)) +
scale_x_continuous(labels = comma) +
scale_y_discrete(labels = scales::wrap_format(15)) +
scale_fill_manual(values = wes_palette("Darjeeling1")) +
labs(x = NULL, y = NULL,
title = "Rata-rata Pengeluaran Mingguan Berdasarkan Kategori") +
theme_minimal() +
theme(
axis.text = element_text(size = 12),
plot.title = element_text(size = 16)
)
ggplotly(plot3, tooltip = "text")Insight
Selama tahun 2018-2022 pengeluaran konsumsi rokok perkapita tertinggi berada pada kategori rokok kretek filter dengan range perbedaan yang sangat jauh dengan rokok kretek tanpa filter yang menempati posisi kedua terbanyak.
Question 4
Daerah-daerah dengan nilai rata-rata pengeluaran rokok/tembakau setiap kategorinya pada 2021
# Membuat data yang relevan
kretekfilter <- rokok.All %>%
filter(Kategori == "Rokok kretek filter",
Tahun == "2021") %>%
na.omit() %>%
mutate(label = glue(
"Rata-rata Pengeluaran
Rp {comma(avg)}"),
labelmedian = glue("Rata-rata Keseluruhan Rp: {comma(median(avg))}")) %>%
arrange(desc(avg))
#Sesi Plotting
plot4 <- ggplot(kretekfilter[1:10,], aes(x = avg, y = reorder(`Kota/Kabupaten`, avg))) +
geom_segment(aes(y = reorder(`Kota/Kabupaten`, avg), yend = reorder(`Kota/Kabupaten`, avg), x= 0 , xend = avg, col = avg ), show.legend = F) +
geom_point(size = 3, aes(col = avg, text = label), show.legend = F) +
geom_vline(aes(xintercept = median(avg), text = labelmedian), data = kretekfilter, col = "red", linetype = 2) +
scale_x_continuous(labels = comma) +
scale_color_gradient(high = "#2ec0e3", low = "#acc670") +
labs(x = NULL, y = NULL,
title = "Rata-rata Pengeluaran Tertinggi Rokok Kretek Filter 2021") +
theme(
axis.text = element_text(size = 12),
plot.title = element_text(face = "bold")
)
ggplotly(plot4, tooltip = "text" )kretek.no.filter <- rokok.All %>%
filter(Kategori == "Rokok kretek tanpa filter",
Tahun == "2021") %>%
na.omit() %>%
mutate(label = glue(
"Rata-rata Pengeluaran
Rp {comma(avg)}"
),
labelmedian = glue("Rata-rata Keseluruhan Rp: {comma(median(avg))}")) %>%
arrange(desc(avg))
#Plotting
plot5 <- ggplot(kretek.no.filter[1:10,], aes(x = avg, y = reorder(`Kota/Kabupaten`, avg))) +
geom_segment(aes(y = reorder(`Kota/Kabupaten`, avg), yend = reorder(`Kota/Kabupaten`, avg), x= 0 , xend = avg, col = avg ), show.legend = F) +
geom_point(size = 3, aes(col = avg, text = label), show.legend = F) +
geom_vline(aes(xintercept = mean(avg), text = labelmedian), data = kretek.no.filter, col = "red", linetype = 2) +
scale_x_continuous(labels = comma) +
scale_color_gradient(high = "#6a4f89", low = "#ed6227") +
labs(x = NULL, y = NULL,
title = "Rata-rata Pengeluaran Tertinggi Rokok Kretek Tanpa Filter 2021") +
theme(
axis.text = element_text(size = 12),
plot.title = element_text(face = "bold")
)
ggplotly(plot5, tooltip = "text" )rokok.putih <- rokok.All %>%
filter(Kategori == "Rokok putih",
Tahun == "2021") %>%
na.omit() %>%
mutate(label = glue(
"Rata-rata Pengeluaran
Rp {comma(avg)}"
),
labelmedian = glue("Rata-rata Keseluruhan Rp: {comma(median(avg))}")) %>%
arrange(desc(avg))
#Plotting
plot6 <- ggplot(rokok.putih[1:10,], aes(x = avg, y = reorder(`Kota/Kabupaten`, avg))) +
geom_segment(aes(y = reorder(`Kota/Kabupaten`, avg), yend = reorder(`Kota/Kabupaten`, avg), x= 0 , xend = avg, col = avg ), show.legend = F) +
geom_point(size = 3, aes(col = avg, text = label), show.legend = F) +
geom_vline(aes(xintercept = mean(avg), text = labelmedian), data = rokok.putih, col = "red", linetype = 2) +
scale_x_continuous(labels = comma) +
scale_y_discrete(labels = scales::wrap_format(15)) +
scale_color_gradient(high = "#03371c", low = "#e96982") +
labs(x = NULL, y = NULL,
title = "Rata-rata Pengeluaran Tertinggi Rokok Putih 2021") +
theme(
axis.text = element_text(size = 12),
plot.title = element_text(face = "bold")
)
ggplotly(plot6, tooltip = "text" )tembakau <- rokok.All %>%
filter(Kategori == "Tembakau",
Tahun == "2021") %>%
na.omit() %>%
mutate(label = glue(
"Rata-rata Pengeluaran
Rp {comma(avg)}"
),
labelmedian = glue("Rata-rata Keseluruhan Rp: {comma(median(avg))}")) %>%
arrange(desc(avg))
#Plotting
plot7 <- ggplot(tembakau[1:10,], aes(x = avg, y = reorder(`Kota/Kabupaten`, avg))) +
geom_segment(aes(y = reorder(`Kota/Kabupaten`, avg), yend = reorder(`Kota/Kabupaten`, avg), x= 0 , xend = avg, col = avg ), show.legend = F) +
geom_point(size = 3, aes(col = avg, text = label), show.legend = F) +
geom_vline(aes(xintercept = mean(avg), text = labelmedian), data = tembakau, col = "red", linetype = 2) +
scale_x_continuous(labels = comma) +
scale_y_discrete(labels = scales::wrap_format(15)) +
scale_color_gradient(high = "#2ec0e3", low = "#acc670") +
labs(x = NULL, y = NULL,
title = "Rata-rata Pengeluaran Tertinggi Tembakau 2021") +
theme(
axis.text = element_text(size = 12),
plot.title = element_text(face = "bold")
)
ggplotly(plot7, tooltip = "text" )Final Insights
- Nilai rata-rata pengeluaran perkapita untuk konsumsi gabungan rokok/tembakau di wilayah Indonesia selalu mengalami peningkatan (selama periode 2018-2021). Dengan nilai rata-rata dan kenaikan ke tiap tahunnya sebagai berikut:
avg.gabungan %>%
group_by(Kategori, Tahun) %>%
summarise(`Rata-rata` = mean(avg)) %>%
mutate(`Kenaikan Rata-rata` = c(0, round(diff(`Rata-rata`),2)))Nilai rata-rata pengeluaran perkapita tertinggi untuk konsumsi rokok/tembakau selama periode 2018-2021 selalu pada kategori rokok kretek filter
Terdapat nilai pengeluran yang sangat tinggi pada tahun 2021 yaitu di Puncak Jaya, kemungkinan bisa dikarenakan harga rokok yang bervariasi sesuai dengan harga penjualan di sebuah wilayah
Pengeluaran rata-rata setiap kategori di tahun 2021:
| Tipe Rokok | Pengeluaran Rata-rata Tahun 2021 |
|---|---|
| Rokok Kretek Filter | Rp 14.728 |
| Rokok Kretek Tanpa Filter | Rp 1.154 |
| Rokok Putih | Rp 767 |
| Tembakau | Rp 80 |