Lấy số lượng mức (levels)
Với mutate() và summarize() trong dplyr, bạn có thể dùng hàm across() để chỉ định áp dụng đối số thứ hai của chúng, một hàm, lên tất cả các cột mà đối số thứ nhất là đúng.
Chúng ta sẽ dùng các hàm này cùng với tidyr để lấy số lượng mức cho mỗi biến factor trong multiple_choice_responses. pivot_longer() của tidyr chuyển một tập dữ liệu từ dạng rộng sang dạng dài. Hai đối số của hàm là tên các cột mới — một cột chứa tên các cột cũ và một cột chứa tất cả các giá trị.
Bài tập này là một phần của khóa học
Dữ liệu phân loại trong Tidyverse
Hướng dẫn bài tập
- Chuyển tất cả các cột kiểu character thành cột kiểu factor và lưu tập dữ liệu mới là
responses_as_factors. - Tạo một tập dữ liệu mới,
number_of_levels, trong đó bạn:- Dùng
summarizevớiacrossđể áp dụng hàmnlevels()cho từng cột. - Chuyển định dạng tập dữ liệu từ rộng sang dài.
- Dùng
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.
# Change all the character columns to factors
responses_as_factors <- multiple_choice_responses %>%
mutate(___(is.character, as.factor))
number_of_levels <- responses_as_factors %>%
# Apply the function nlevels to each column
summarize(___(everything(), ___)) %>%
# Change the dataset from wide to long
___(everything(), names_to = "variable", values_to = "num_levels")