Các mức của kiểu dữ liệu factor (factor level)
Khi nhận một bộ dữ liệu, chúng ta thường thấy trong đó có các factor với những level cụ thể. Tuy nhiên, đôi khi ta muốn đổi tên các level này cho rõ ràng hơn hoặc vì lý do khác. Trong R, ta có thể làm việc này với hàm levels():
levels(factor_vector) <- c("name1", "name2",...)
Ví dụ điển hình là dữ liệu thô thu được trong các cuộc khảo sát. Một câu hỏi phổ biến trong mọi bảng câu hỏi là giới tính của người được khảo sát. Ở đây, để đơn giản, chỉ có hai nhóm được ghi nhận, "M" và "F". (Trong thực tế, dữ liệu khảo sát thường cần nhiều nhóm phân loại giới tính hơn nhưng dù sao đi nữa, chúng ta cũng dùng factor để lưu trữ dữ liệu phân loại.)
survey_vector <- c("M", "F", "F", "M", "M")
Ghi giới tính bằng cách viết tắt "M" và "F" sẽ tiện khi ta khảo sát bằng giấy bút, nhưng có thể gây nhầm lẫn khi phân tích. Lúc đó, thường sẽ phải đổi các level của factor thành "Male" và "Female" thay cho "M" và "F" để rõ ràng hơn.
Lưu ý: thứ tự gán các level rất quan trọng. Nếu ta gõ levels(factor_survey_vector), ta sẽ thấy kết quả là [1] "F" "M". Nếu ta không chỉ định level của factor khi tạo vector, R sẽ tự động gán theo thứ tự bảng chữ cái. Để khớp đúng "F" thành "Female" và "M" thành "Male", các level phải được đặt là c("Female", "Male") theo đúng thứ tự này.
Bài tập này là một phần của khóa học
Nhập môn Ngôn ngữ lập trình R
Hướng dẫn bài tập
- Hãy xem đoạn code tạo một factor vector từ
survey_vector. Sau đó, dùngfactor_survey_vectorở bước tiếp theo. - Đổi các level của
factor_survey_vectorthànhc("Female", "Male"). Lưu ý thứ tự của các phần tử trong vector.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector