1. Đọc dữ liệu

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── 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
library(DT)
library(scales)
## 
## Attaching package: 'scales'
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
d <- read.csv(file = "C:/Users/PC_Dell/Downloads/Supermarket Transactions.csv", header = T)

datatable(head(d), options = list(scrollX = TRUE))

2. Biến định tính


2.1. Biến Gender

LS0tDQp0aXRsZTogIlRI4buwQyBIw4BOSCBUcsOqbiBM4bubcCINCmF1dGhvcjogIk5ndXnhu4VuIFBow7pjIFRo4buLbmgiDQpkYXRlOiAiMjAyNS0wNS0xOSINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICB0b2M6IHRydWUNCiAgICBudW1iZXIgc2VjdGlvbjogdHJ1ZQ0KICAgIHRvY19mbG9hdDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5OyI+IA0KDQojICoqMS4gxJDhu41jIGThu68gbGnhu4d1KioNCg0KYGBge3Igd2FybmluZz1GQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShEVCkNCmxpYnJhcnkoc2NhbGVzKQ0KDQpkIDwtIHJlYWQuY3N2KGZpbGUgPSAiQzovVXNlcnMvUENfRGVsbC9Eb3dubG9hZHMvU3VwZXJtYXJrZXQgVHJhbnNhY3Rpb25zLmNzdiIsIGhlYWRlciA9IFQpDQoNCmRhdGF0YWJsZShoZWFkKGQpLCBvcHRpb25zID0gbGlzdChzY3JvbGxYID0gVFJVRSkpDQpgYGANCg0KIyAqKjIuIEJp4bq/biDEkeG7i25oIHTDrW5oKioNCl9fXw0KIyMgKioyLjEuIEJp4bq/biBHZW5kZXIqKg0K