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

col_types với collectors

Một cách khác để đặt kiểu dữ liệu cho các cột được nhập là dùng collectors. Các hàm collector có thể được truyền trong một list() vào đối số col_types của các hàm read_ để chỉ cho chúng biết cách diễn giải giá trị trong từng cột.

Để xem đầy đủ danh sách các hàm collector, bạn có thể xem tài liệu collector. Trong bài này bạn sẽ cần hai hàm collector:

  • col_integer(): cột sẽ được hiểu là số nguyên (integer).
  • col_factor(levels, ordered = FALSE): cột sẽ được hiểu là factor với các levels.

Trong bài tập này, bạn sẽ làm việc với hotdogs.txt (xem), đây là một tệp phân tách bằng tab và không có tên cột ở hàng đầu tiên.

Bài tập này là một phần của khóa học

Nhập dữ liệu vào R - Giới thiệu

Xem khóa học

Hướng dẫn bài tập

  • hotdogs đã được tạo sẵn cho bạn mà không thiết lập kiểu cột. Hãy kiểm tra phần tóm tắt của nó bằng hàm summary().
  • Hai hàm collector đã được định nghĩa sẵn: facint. Hãy xem chúng, bạn có hiểu chúng đang thu thập/diễn giải kiểu dữ liệu nào không?
  • Ở lần gọi read_tsv() thứ hai, hãy chỉnh đối số col_types: Truyền vào một list() với các phần tử fac, intint, để cột đầu tiên được nhập dưới dạng factor, và cột thứ hai cùng thứ ba dưới dạng số nguyên.
  • Tạo summary() cho hotdogs_factor. So sánh kết quả này với phần tóm tắt của hotdogs.

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.

# Import without col_types
hotdogs <- read_tsv("hotdogs.txt", col_names = c("type", "calories", "sodium"))

# Display the summary of hotdogs
___

# The collectors you will need to import the data
fac <- col_factor(levels = c("Beef", "Meat", "Poultry"))
int <- col_integer()

# Edit the col_types argument to import the data correctly: hotdogs_factor
hotdogs_factor <- read_tsv("hotdogs.txt",
                           col_names = c("type", "calories", "sodium"),
                           col_types = NULL)

# Display the summary of hotdogs_factor
___
Chỉnh sửa và Chạy Mã