Yếu tố là một kiểu dữ liệu khá đặc biệt và trừu tượng của R. Để dễ hiểu hơn, ta xét thí dụ sau.
Một công ty sản xuất bánh kẹo sử dụng một số đại lý để phân phối sản phẩm cho mình. Bảng dữ liệu cho biết một số thông tin của các nhà phân phối và doanh số được tthiết lập bằng MS Excel, lưu thành tập tin BanhKeo.csv và được đưa vào R để xử lý. Nội dung bảng này như sau:(Bảng 2)
Bảng 2 Dữ liệu về nhà phân phối và doanh số của công ty XYZ
NhaPP | KhuVuc | SanPham | DoanhSo |
---|---|---|---|
BanDon | TayNguyen | Cracker | 128 |
ChiCuong | TPHCM | Keo | 165 |
ChoNoi | DBSCL | Cookie | 130 |
DucHuy | HaNoi | Cookie | 125 |
Dung | TPHCM | Cookie | 351 |
LapVo | DBSCL | Keo | 46 |
NgocAnh | TPHCM | Cracker | 264 |
PhoNui | TayNguyen | Keo | 63 |
Ghi chú : các thông tin trong bảng này chỉ mang tính chất minh họa, không có thực.
Trong bảng này, ta thấy biến KhuVuc được thể hiện dưới dạng chữ. Tuy nhiên, khi ta xét kiểu dữ liệu của biến này thì ta thấy như sau.
> mode(BanhKeo$KhuVuc)
[1] "numeric"
Như vậy biến này có kiểu số ?
Nếu ta dùng R để xem xét nội dung của biến này thì ta thấy:
> BanhKeo$KhuVuc
[1] TayNguyen TPHCM DBSCL HaNoi TPHCM
[6] DBSCL TPHCM TayNguyen
Levels: DBSCL HaNoi TayNguyen TPHCM
Điều tương tự cũng xẩy ra cho các biến NhaPP và SanPham nhưng không xẩy ra cho biến DoanhSo
Nếu ta dùng hàm str
để tìm hiểu cấu trúc của bảng BanhKeo, ta thu được kết quả sau
> str(BanhKeo)
'data.frame': 8 obs. of 4 variables:
$ NhaPP : Factor w/ 8 levels "BanDon","ChiCuong",..: 1 2 3 4 5 6 7 8
$ KhuVuc : Factor w/ 4 levels "DBSCL","HaNoi",..: 3 4 1 2 4 1 4 3
$ SanPham: Factor w/ 3 levels "Cookie","Cracker",..: 2 3 1 1 1 3 2 3
$ DoanhSo: int 128 165 130 125 351 46 264 63
Ta có một số nhận xét về các kết quả này như sau:
> BanhKeo$KhuVuc[4] + 5
[1] NA
Warning message:
In Ops.factor(BanhKeo$KhuVuc[4] + 5) : '+' not meaningful for factors
Điều này xẩy ra do khi đọc các bảng dữ liệu để xử lý, R chuyển các dữ liệu ở dạng chữ thành một dạng dữ liệu được gọi là yếu tố (Factor). Dạng này có một số đặc điểm như sau:
Kiểu dữ liệu yếu tố giúp nhiều quá trình xử lý dữ liệu thuận tiện hơn như ta sẽ gặp trong chuyên đề này cũng như trong thực tế. Ta có thể chuyển kiểu dữ liệu của một biến nào đó sang kiểu yếu tố bằng hàm as.factor
. Ngược lại, ta cũng có thể chuyển một biến từ kiểu yếu tố về kiểu chữ bằng hàm as.character
.
Trang web này được cập nhật lần cuối ngày 25/11/2018
R
Các chuyên đề
Xử lý dữ liệu
Ma trận
R