Bắt đầu ngayBắt đầu miễn phí

Lấy số lượng mức (levels)

Với mutate()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

Xem khóa học

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 summarize với across để áp dụng hàm nlevels() cho từng cột.
    • Chuyển định dạng tập dữ liệu từ rộng sang dài.

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")
Chỉnh sửa và Chạy Mã