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
##Panggil Data
b <- read.csv("df_customer.csv")
head(b)
## X ID_Pelanggan Jenis_Kelamin Tempat_Tinggal Penghasilan Total_Belanja
## 1 1 ID00031 Laki-laki Desa 2227350 2563031
## 2 2 ID00079 Perempuan Kota 9047608 8369550
## 3 3 ID00051 Perempuan Kota 9735540 8053033
## 4 4 ID00014 Laki-laki Kota 13510126 9799876
## 5 5 ID00067 Perempuan Desa 7773498 6982081
## 6 6 ID00042 Laki-laki Desa 6666740 4782002
##1. Berapa jumlah total transaksi dalam data ini? nrow() berfungsi untuk menghitung banyaknya data (banyaknya baris).
nrow(b)
## [1] 300
##2. Ada berapa pelanggan unik dalam dataset? unique() untuk melihat data yang berbeda saja, data yang sudah ada tidak akan dimunculkan lagi. length() untuk menghitung berapa banyak datanya.
data_unik<-unique(b$ID_Pelanggan)
length(data_unik)
## [1] 94
##3. Siapa pelanggan yang paling sering berbelanja? table() untuk menghitung frekuensi kemunculan setiap data. sort() berfungsi untuk mengurutkan data dari yang terkecil ke terbesar, namun jika kita menambahkan decreasting, dataakan berurutan dari yang terbesar ke terkecil. fungsi head() adalah untuk menentukan berapa banyak data teratas yang ingin kita munculkan.
frek.muncul<-table(b$ID_Pelanggan)
sort(frek.muncul, decreasing = TRUE) |>head(3)
##
## ID00007 ID00025 ID00089
## 9 7 7
##4. Rata-rata penghasilan pelanggan berdasarkan jenis kelamin.
aggregate(Penghasilan ~ Jenis_Kelamin, data=b, mean)
## Jenis_Kelamin Penghasilan
## 1 Laki-laki 8880902
## 2 Perempuan 8505199
##5. Rata-rata total belanja pelanggan berdasarkan jenis kelamin
aggregate(Total_Belanja ~ Jenis_Kelamin, data=b, mean)
## Jenis_Kelamin Total_Belanja
## 1 Laki-laki 6034728
## 2 Perempuan 7114786
##6. Rata-rata penghasilan pelanggan berdasarkan tempat tinggal (Kota vs Desa).
aggregate(Penghasilan ~ Tempat_Tinggal, data=b, mean)
## Tempat_Tinggal Penghasilan
## 1 Desa 6249122
## 2 Kota 9878685
##7. Rata-rata total belanja pelanggan berdasarkan tempat tinggal.
aggregate(Total_Belanja ~ Tempat_Tinggal, data=b, mean)
## Tempat_Tinggal Total_Belanja
## 1 Desa 5022231
## 2 Kota 7520118
##8. Siapa 5 pelanggan dengan total belanja tertinggi?
b[order(-b$Total_Belanja), c("ID_Pelanggan", "Total_Belanja")] |> head(5)
## ID_Pelanggan Total_Belanja
## 76 ID00034 11626302
## 175 ID00011 11527638
## 228 ID00057 11031197
## 287 ID00093 10984825
## 33 ID00007 10846012
##9. Distribusi jumlah transaksi berdasarkan jenis kelamin.
table(b$Jenis_Kelamin)
##
## Laki-laki Perempuan
## 121 179
##10. Buat kategori penghasilan: Rendah (< 5 juta) Menengah (5–10 juta) Tinggi (> 10 juta) Lalu hitung distribusinya.
b$kategori<-cut(b$Penghasilan,
breaks = c(-Inf, 5000000, 10000000, Inf),
labels = c("Rendah", "Menengah", "Tinggi"))
table(b$kategori)
##
## Rendah Menengah Tinggi
## 27 175 98