R-009 factor trong R
Nội dung bài viết
factor
là một những kiểu dữ liệu cơ bản của R.
Để hiểu rõ factor
của R các bạn có thể đọc tài liệu chi tiết về factor bằng lệnh:
?factor
Vì ít khi được sử dụng nhiều nên phần về factor này mình sẽ đi nhanh.
factor
trong R thực chất là một vector
dữ liệu được lưu thêm một số thông tin mà được gọi là levels
(thực ra là các giá trị phân biệt của vector
đó). Ví dụ sau đây sẽ làm rõ điều này!
vec <- c(56,58,59,56,59,59)
factor.vec <- factor(vec)
factor.vec
[1] 56 58 59 56 59 59
Levels: 56 58 59
vector
ban đầu có 3 giá trị phân biệt là 56, 58, 59 được gọi là các levels
.
Một trong những ứng dụng quan trọng của factor
là dùng một số hàm đặt biệt như tapply(...)
, giả sử mình có một vector
thu nhập, một vector
xếp loại (một tiêu chuẩn nào đó mà mình đặt ra), một hàm mà mình cần áp dụng cho các tiêu chuẩn đó:
thu.nhap <- c(1,70,5,3,25,30)
xep.loai <- c("F", "A", "C","C","B","B")
factor.xep.loai <- factor(xep.loai)
tapply(thu.nhap, factor.xep.loai, mean)
A B C F
70.0 27.5 4.0 1.0
Lưu ý: hàm tapply(vector, index, function)
với index
sẽ tự chuyển thành factor
bằng cách ép kiểu as.factor(...)
nên bạn hoàn toàn có thể đặt index
là xep.loai
cũng không sao!
Kết quả trên là kết quả của R nhóm các phần tử có cùng factor
sau đó thực hiện hàm function
được truyền vào (trong trường hợp này là hàm mean
).
Trong một số trường hợp thì hàm tapply(...)
cực kì hữu ích!