data <- data.frame(
housing = c(820, 184, 921, 488, 721, 614, 801, 396, 864, 845, 404, 781, 457, 1029, 1047, 552, 718, 495, 382, 1090,
497, 839, 798, 892, 1585, 755, 388, 617, 248, 1641, 1180, 619, 253, 661, 1981, 1746, 1865, 238, 1199, 1524),
food = c(114, 74, 66, 80, 83, 55, 56, 59, 65, 64, 97, 47, 103, 71, 90, 91, 104, 114, 77, 59,
591, 942, 1308, 842, 781, 764, 655, 879, 438, 440, 1243, 684, 422, 739, 869, 746, 915, 522, 1095, 964),
goods = c(183, 6, 1686, 103, 176, 441, 357, 61, 1618, 1935, 33, 1906, 136, 244, 653, 185, 583, 65, 230, 313,
153, 302, 668, 287, 2476, 428, 153, 757, 22, 6471, 768, 99, 15, 71, 1489, 2662, 5184, 29, 261, 1739),
services = c(154, 20, 455, 115, 104, 193, 214, 80, 352, 414, 47, 452, 108, 189, 298, 158, 304, 74, 147, 177,
291, 365, 584, 395, 1740, 438, 233, 719, 65, 2063, 813, 204, 48, 188, 1032, 1594, 1767, 75, 344, 1410),
gender = c(rep("female", 20), rep("male", 20))
)
Menampilkan data
data
## housing food goods services gender
## 1 820 114 183 154 female
## 2 184 74 6 20 female
## 3 921 66 1686 455 female
## 4 488 80 103 115 female
## 5 721 83 176 104 female
## 6 614 55 441 193 female
## 7 801 56 357 214 female
## 8 396 59 61 80 female
## 9 864 65 1618 352 female
## 10 845 64 1935 414 female
## 11 404 97 33 47 female
## 12 781 47 1906 452 female
## 13 457 103 136 108 female
## 14 1029 71 244 189 female
## 15 1047 90 653 298 female
## 16 552 91 185 158 female
## 17 718 104 583 304 female
## 18 495 114 65 74 female
## 19 382 77 230 147 female
## 20 1090 59 313 177 female
## 21 497 591 153 291 male
## 22 839 942 302 365 male
## 23 798 1308 668 584 male
## 24 892 842 287 395 male
## 25 1585 781 2476 1740 male
## 26 755 764 428 438 male
## 27 388 655 153 233 male
## 28 617 879 757 719 male
## 29 248 438 22 65 male
## 30 1641 440 6471 2063 male
## 31 1180 1243 768 813 male
## 32 619 684 99 204 male
## 33 253 422 15 48 male
## 34 661 739 71 188 male
## 35 1981 869 1489 1032 male
## 36 1746 746 2662 1594 male
## 37 1865 915 5184 1767 male
## 38 238 522 29 75 male
## 39 1199 1095 261 344 male
## 40 1524 964 1739 1410 male
Melihat rangkuman data
summary(data)
## housing food goods services
## Min. : 184.0 Min. : 47.00 Min. : 6.0 Min. : 20.0
## 1st Qu.: 493.2 1st Qu.: 76.25 1st Qu.: 127.8 1st Qu.: 139.0
## Median : 768.0 Median : 268.00 Median : 294.5 Median : 262.0
## Mean : 828.4 Mean : 435.20 Mean : 873.7 Mean : 460.6
## 3rd Qu.:1033.5 3rd Qu.: 768.25 3rd Qu.: 948.2 3rd Qu.: 452.8
## Max. :1981.0 Max. :1308.00 Max. :6471.0 Max. :2063.0
## gender
## Length:40
## Class :character
## Mode :character
##
##
##
Meload library Paket dplyr yang merupakan bagian dari tidyverse. Paket ini menyediakan fungsi-fungsi yang memudahkan dalam manipulasi data seperti group_by() dan summarize().
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.2
##
## 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
Merangkum data pengeluaran rumah tangga untuk pria dan wanita
summary_by_gender <- data %>%
group_by(gender) %>%
summarize(
avg_housing = mean(housing),
avg_food = mean(food),
avg_goods = mean(goods),
avg_services = mean(services),
total_expenditure = mean(housing + food + goods + services)
)
Penjelasan: data %>%: Pipe operator %>% digunakan untuk mengalirkan data frame data sebagai input ke fungsi berikutnya, yaitu group_by(). Ini membuat kode lebih bersih dan mudah dibaca.
group_by(gender): Data dikelompokkan berdasarkan kolom gender, sehingga kita bisa menghitung statistik deskriptif untuk masing-masing kelompok gender.
summarize(…): mean(housing): Menghitung rata-rata pengeluaran untuk housing dalam tiap kelompok gender.(begitupun kelompok lainnya) total_expenditure: Menghitung total pengeluaran dengan menjumlahkan semua kategori dan menghitung rata-ratanya.
Melihat hasil rangkuman barusan
summary_by_gender
## # A tibble: 2 × 6
## gender avg_housing avg_food avg_goods avg_services total_expenditure
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 female 680. 78.4 546. 203. 1507.
## 2 male 976. 792. 1202. 718. 3688.
Memuat library ggplot2 Paket ggplot2 dimuat untuk menghasilkan grafik yang menarik dan informatif. Kita akan menggunakan fungsi ggplot() untuk membuat boxplot.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3
Boxplot Pengeluaran untuk Housing Berdasarkan Gender
ggplot(data, aes(x = gender, y = housing, fill = gender)) +
geom_boxplot() +
labs(title = "Housing Expenditure by Gender", x = "Gender", y = "Housing (HKD)") +
theme_minimal()
Penjelasan: ggplot(data, aes(x = gender, y = housing, fill = gender)):
Kita menggunakan data data dengan aes() untuk menentukan bahwa sumbu x
adalah gender dan sumbu y adalah pengeluaran untuk housing. Warna diisi
berdasarkan gender.
geom_boxplot(): Membuat boxplot untuk melihat distribusi pengeluaran housing di antara laki-laki dan perempuan.
labs(): Digunakan untuk memberi judul pada plot serta label pada sumbu x dan sumbu y.
theme_minimal(): Memberikan gaya minimalis pada plot agar lebih bersih.
Boxplot Pengeluaran untuk Food Berdasarkan Gender
ggplot(data, aes(x = gender, y = food, fill = gender)) +
geom_boxplot() +
labs(title = "Food Expenditure by Gender", x = "Gender", y = "Food (HKD)") +
theme_minimal()
Penjelasan: Plot ini sama seperti sebelumnya, tetapi kali ini untuk
melihat distribusi pengeluaran food antara laki-laki dan perempuan.
Sumbu y diubah menjadi food.
Boxplot Pengeluaran untuk Goods Berdasarkan Gender
ggplot(data, aes(x = gender, y = goods, fill = gender)) +
geom_boxplot() +
labs(title = "Goods Expenditure by Gender", x = "Gender", y = "Goods (HKD)") +
theme_minimal()
Penjelasan: Plot ini digunakan untuk melihat distribusi pengeluaran
goods berdasarkan gender, dengan sumbu y diubah menjadi goods.
Boxplot Pengeluaran untuk Services Berdasarkan Gender
ggplot(data, aes(x = gender, y = services, fill = gender)) +
geom_boxplot() +
labs(title = "Services Expenditure by Gender", x = "Gender", y = "Services (HKD)") +
theme_minimal()
Penjelasan: Sama seperti sebelumnya, tetapi kali ini untuk pengeluaran
services.
Total Expenditure by Gender
data$total_expenditure <- data$housing + data$food + data$goods + data$services
Penjelasan: Menghitung pengeluaran total untuk setiap individu dengan menjumlahkan semua kategori (housing, food, goods, services) dan menyimpannya ke kolom baru total_expenditure.
Kenapa harus ada simbol $? Simbol $ dalam R digunakan untuk mengakses kolom tertentu dalam sebuah data frame atau list. Dalam kasus ini, data adalah data frame, dan kolom-kolom seperti housing, food, goods, dan services adalah kolom-kolom di dalam data frame data. Jadi, simbol $ digunakan untuk mengambil nilai dari kolom tertentu dalam data frame tersebut.
data$total_expenditure
## [1] 1271 284 3128 786 1084 1303 1428 596 2899 3258 581 3186
## [13] 804 1533 2088 986 1709 748 836 1639 1532 2448 3358 2416
## [25] 6582 2385 1429 2972 773 10615 4004 1606 738 1659 5371 6748
## [37] 9731 864 2899 5637
Membuat boxplot dari total expenditure tersebut
ggplot(data, aes(x = gender, y = total_expenditure, fill = gender)) +
geom_boxplot() +
labs(title = "Total Expenditure by Gender", x = "Gender", y = "Total Expenditure (HKD)") +
theme_minimal()
Berdasarkan hasil analisis deskriptif dan visualisasi: 1. Laki-laki cenderung menghabiskan lebih banyak pada kategori housing, goods, dan services dibandingkan perempuan. 2. Distribusi pengeluaran untuk food lebih merata di antara laki-laki dan perempuan. 3. Total pengeluaran secara keseluruhan lebih tinggi untuk laki-laki dibandingkan perempuan.
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE
parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.