Setup awal
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
df <- read.csv("df_customer.csv")
head(df)
## 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
Pelanggan yang paling sering membeli dengan total belanja >
5.000.000
frec1 <- df %>%
filter(Total_Belanja > 5000000) %>%
count(ID_Pelanggan, sort = TRUE)
head(frec1, n=3)
## ID_Pelanggan n
## 1 ID00007 7
## 2 ID00025 7
## 3 ID00026 6
Jumlah perempuan di kota yang berbelanja lebih dari 5 kali
frec2 <- df %>%
group_by(ID_Pelanggan, Jenis_Kelamin, Tempat_Tinggal) %>%
summarise(frec = n(), .groups = 'drop')
ffrec2 <- frec2 %>%
filter(frec > 5 &
Tempat_Tinggal == 'Kota' &
Jenis_Kelamin == 'Perempuan')
nrow(ffrec2)
## [1] 0
head(ffrec2)
## # A tibble: 0 × 4
## # ℹ 4 variables: ID_Pelanggan <chr>, Jenis_Kelamin <chr>, Tempat_Tinggal <chr>,
## # frec <int>
Pelanggan yang paling sering membeli dengan penghasilan >
5.000.000
frec3 <- df %>%
group_by(ID_Pelanggan, Penghasilan) %>%
filter(Penghasilan > 5000000) %>%
summarise(frec = n(), .groups = 'drop')
head(arrange(frec3, desc(frec)), n=1)
## # A tibble: 1 × 3
## ID_Pelanggan Penghasilan frec
## <chr> <int> <int>
## 1 ID00001 5679239 1
Jenis kelamin pelanggan di desa dengan total belanja >
5.000.000
summ4 <- df %>%
group_by(Jenis_Kelamin, Tempat_Tinggal, Total_Belanja) %>%
filter(Total_Belanja > 5000000) %>%
summarise(.groups = 'drop')
head(arrange(summ4), n = 1)
## # A tibble: 1 × 3
## Jenis_Kelamin Tempat_Tinggal Total_Belanja
## <chr> <chr> <int>
## 1 Laki-laki Desa 5002921
head(arrange(summ4, desc(Jenis_Kelamin)), n = 1)
## # A tibble: 1 × 3
## Jenis_Kelamin Tempat_Tinggal Total_Belanja
## <chr> <chr> <int>
## 1 Perempuan Desa 5043885
Penghasilan pelanggan di desa dengan total belanja >
5.000.000
summ5 <- df %>%
group_by(Penghasilan, Tempat_Tinggal, Total_Belanja) %>%
filter(Total_Belanja > 5000000) %>%
summarise(.groups = 'drop')
head(summ5)
## # A tibble: 6 × 3
## Penghasilan Tempat_Tinggal Total_Belanja
## <int> <chr> <int>
## 1 2975563 Kota 5952935
## 2 3157783 Desa 5695306
## 3 3373098 Desa 5157567
## 4 3495751 Kota 6122424
## 5 3726214 Desa 5043885
## 6 4473417 Kota 5476852
min(summ5$Penghasilan)
## [1] 2975563
max(summ5$Penghasilan)
## [1] 16145151