Các giá trị duy nhất
Thuộc phần Logic và luồng điều khiển trong hành trình R của Coddy. Bài học 12 trên 64.
R không có kiểu tập hợp riêng: tập hợp là một vector không có giá trị lặp lại. unique() loại bỏ các giá trị lặp lại và giữ lại lần xuất hiện đầu tiên của mỗi giá trị theo thứ tự ban đầu.
tags <- c("r", "stats", "r", "data", "stats")
print(unique(tags))
print(length(unique(tags)))Đầu ra:
[1] "r" "stats" "data"
[1] 3duplicated() trả về TRUE cho mọi giá trị đã xuất hiện trước đó trong vector. Lần xuất hiện đầu tiên là FALSE:
ids <- c(7, 3, 7, 9, 3)
print(duplicated(ids))
print(ids[duplicated(ids)])Đầu ra:
[1] FALSE FALSE TRUE FALSE TRUE
[1] 7 3Cả hai hàm đều so sánh các giá trị chính xác, nên "R" và "r" khác nhau. Hãy chuẩn hóa văn bản trước nếu không cần phân biệt chữ hoa chữ thường:
langs <- c("R", "python", "r", "Python")
print(length(unique(langs)))
print(unique(tolower(langs)))Đầu ra:
[1] 4
[1] "r" "python"unique() cũng hoạt động với số, còn sort(unique(x)) liệt kê các giá trị riêng biệt theo thứ tự tăng dần. sum(duplicated(x)) đếm số phần tử bị lặp lại:
rolls <- c(4, 2, 6, 2, 4, 4)
print(sort(unique(rolls)))
print(sum(duplicated(rolls)))Đầu ra:
[1] 2 4 6
[1] 3Thử thách
DễHoàn thành count_distinct(tags). Trả về số lượng thẻ khác nhau khi không phân biệt chữ hoa chữ thường: R và r được tính là một.
Đoạn code được cung cấp đọc các thẻ từ một dòng, phân tách bằng dấu phẩy, rồi in ra số lượng được trả về.
Tự làm thử
count_distinct <- function(tags) {
# Viết code của bạn ở đây
0
}
# Đoạn code đầu vào/đầu ra có sẵn: giữ nguyên
input <- suppressWarnings(readLines(file("stdin")))
cat(count_distinct(strsplit(input[1], ",")[[1]]), sep = "\n")
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng điều khiển
1Chuỗi chuyên sâu
Chuỗi con với substr()Định dạng với sprintf()Tách và nối chuỗiTìm kiếm trong chuỗiThay thế văn bảnÔn tập: Tạo tên người dùng10Luồng điều khiển nâng cao
Hàm switch()ifelse() dạng vector hóarepeat và breakHàm đệ quyÔn tập: phân loại điểm3Tập hợp và đếm
Các giá trị duy nhấtCác phép toán trên tập hợpKiểm tra phần tửĐếm bằng table()Ôn tập: Khách mời sự kiện12Dự án: Theo dõi chi tiêu
Ghi lại các khoản chiTổng chi tiêuTự luyện tập: Trình biên dịch R online