Đọc dữ liệu

data <- read.csv("D:/Downloads/Supermarket Transactions.csv", header = T)

Chọn các biến định tính và kiểm tra lại

dinhtinh <- c("Gender", "MaritalStatus", "Homeowner",  "City", "StateorProvince", "Country", "ProductFamily", "ProductDepartment","ProductCategory")
# Tạo bộ dữ liệu mới chỉ chứa các biến định tính
datadinhtinh <- data[,dinhtinh]
# Kiểm tra lại bộ dữ liệu
head(datadinhtinh)
##   Gender MaritalStatus Homeowner          City StateorProvince Country
## 1      F             S         Y   Los Angeles              CA     USA
## 2      M             M         Y   Los Angeles              CA     USA
## 3      F             M         N     Bremerton              WA     USA
## 4      M             M         Y      Portland              OR     USA
## 5      F             S         Y Beverly Hills              CA     USA
## 6      F             M         Y Beverly Hills              CA     USA
##   ProductFamily ProductDepartment      ProductCategory
## 1          Food       Snack Foods          Snack Foods
## 2          Food           Produce           Vegetables
## 3          Food       Snack Foods          Snack Foods
## 4          Food            Snacks                Candy
## 5         Drink         Beverages Carbonated Beverages
## 6          Food              Deli          Side Dishes

Biến Gender

Bảng tần số

tanso <- table(datadinhtinh$Gender)
tanso
## 
##    F    M 
## 7170 6889

Giải thích

Vậy trong bộ dữ liệu có 7170 là nữ và 6889là nam.

Bảng tần suất

tansuat <- table(datadinhtinh$Gender)/sum(nrow(datadinhtinh))
tansuat
## 
##         F         M 
## 0.5099936 0.4900064

Giải thích

Vậy trong bộ dữ liệu có 50.9993598% là nữ và 49.0006402% là nam.

Vẽ biểu đồ

Biểu đồ cột

barplot(tanso, 
        main = "Biểu đồ tần số theo giới tính",
        xlab = "Giới tính",
        ylab = "Tần số",
        col = c("lightblue", "pink")
        )

### Vẽ biểu đồ tròn

pie(tanso, 
      main = "Biểu đồ tròn theo giới tính",
     col = c("lightblue", "pink"),
     labels = paste(names(tanso), " (", tanso, ")")
    )

# Biến MaritalStatus

Tần số

ts1 <- table(datadinhtinh$MaritalStatus)
ts1
## 
##    M    S 
## 6866 7193

Vậy trong bộ dữ liệu có 6866 là người đã kết hôn và 7193 là người độc thân.

Tần suất

tst1 <- table(datadinhtinh$MaritalStatus)/sum(nrow(datadinhtinh))
tst1
## 
##         M         S 
## 0.4883704 0.5116296

Vậy trong bộ dữ liệu có 48.8370439% là người đã kết hôn và 51.1629561% là người độc thân.

vẽ biểu đồ

Biểu đồ cột

barplot(ts1,
        main = "Biểu đồ cột tần số thể hiện tình trạng hôn nhân",
        xlab = "Tình trạng",
        ylab = "Tần số",
        col = c("lightblue", "pink"))

Biến Homeover

Tần số

ts2 <- table(datadinhtinh$Homeowner)
ts2
## 
##    N    Y 
## 5615 8444

vậy trong bộ dữ liệu có 5615khách hàng không sở hữu nhà và 8444 khách hàng sở hữu nhà.

Tần suất

tst2 <- table(datadinhtinh$Homeowner)/sum(nrow(datadinhtinh))
tst2
## 
##         N         Y 
## 0.3993883 0.6006117

vậy trong bộ dữ liệu có 39.9388292 % khách hàng không sở hữu nhà và 60.0611708 % khách hàng sở hữu nhà.

Vẽ biểu đồ

Biểu đồ cột

barplot(ts2,
        main = "Biểu đồ cột tần số thể hiện sự sở hữu nhà",
                ylab = "Tần số",
        col = c("lightblue", "pink"))

Biểu đồ tròn

Vẽ biểu đồ tròn

pie(ts2, 
      main = "Biểu đồ tròn của biến Homeover",
     col = c("lightblue", "pink"),
     labels = paste(names(ts2), " (", ts2, ")")
    )

Biến City

Tần số

ts3 <- table(datadinhtinh$City)
ts3
## 
##      Acapulco    Bellingham Beverly Hills     Bremerton       Camacho 
##           383           143           811           834           452 
##   Guadalajara       Hidalgo   Los Angeles        Merida   Mexico City 
##            75           845           926           654           194 
##       Orizaba      Portland         Salem    San Andres     San Diego 
##           464           876          1386           621           866 
## San Francisco       Seattle       Spokane        Tacoma     Vancouver 
##           130           922           875          1257           633 
##      Victoria   Walla Walla        Yakima 
##           176           160           376

Vậy trong bộ dữ liệu có 383 khách hàng ở thành phố Acapulco, 143 khách hàng ở thành phố Bellingham, 811 khách hàng ở thành phố Beverly Hills,…

Tần suất

tst3 <- table(datadinhtinh$City)/sum(nrow(datadinhtinh))
tst3
## 
##      Acapulco    Bellingham Beverly Hills     Bremerton       Camacho 
##   0.027242336   0.010171420   0.057685468   0.059321431   0.032150224 
##   Guadalajara       Hidalgo   Los Angeles        Merida   Mexico City 
##   0.005334661   0.060103848   0.065865282   0.046518245   0.013798990 
##       Orizaba      Portland         Salem    San Andres     San Diego 
##   0.033003770   0.062308841   0.098584537   0.044170994   0.061597553 
## San Francisco       Seattle       Spokane        Tacoma     Vancouver 
##   0.009246746   0.065580767   0.062237712   0.089408920   0.045024539 
##      Victoria   Walla Walla        Yakima 
##   0.012518671   0.011380610   0.026744434

Vẽ biểu đồ

Biểu đồ tròn

pie(ts3,
    main = "Biểu đồ tròn của biến City",
    col = rainbow(length(ts3)),
    labels = NA         
)

# Thêm chú thích bên phải
legend("right",                              
       legend = paste0(names(ts3), " (", ts3, ")"),
       fill = rainbow(length(ts3)),          
       cex = 0.7                              
)

# Biến StateorProvince

Tần số

ts4 <- table(datadinhtinh$StateorProvince)
ts4
## 
##        BC        CA        DF  Guerrero   Jalisco        OR  Veracruz        WA 
##       809      2733       815       383        75      2262       464      4567 
##   Yucatan Zacatecas 
##       654      1297

Tần suất

tst4 <- table(datadinhtinh$StateorProvince)/sum(nrow(datadinhtinh))
tst4
## 
##          BC          CA          DF    Guerrero     Jalisco          OR 
## 0.057543211 0.194395049 0.057969984 0.027242336 0.005334661 0.160893378 
##    Veracruz          WA     Yucatan   Zacatecas 
## 0.033003770 0.324845295 0.046518245 0.092254072

Biểu đồ

Biểu đồ cột

barplot(ts4,
        main = "Biểu đồ cột tần số theo bang",
        ylab = "Tần số",
        col = "skyblue",
        )

### Biểu đồ tròn

pie(ts4,
    main = "Biểu đồ tròn tần số theo bang",
    col = rainbow(length(ts4)),
    labels = NA         
)

# Thêm chú thích bên phải
legend("right",                              
       legend = paste0(names(ts4), " (", ts4, ")"),
       fill = rainbow(length(ts4)),          
       cex = 0.7                              
)