Dùng lapply với hàm của chính bạn
Như Filip đã giải thích trong video hướng dẫn, bạn cũng có thể dùng lapply() với các hàm do bạn tự viết. Bạn chỉ cần viết một hàm mới và đảm bảo nó có sẵn trong không gian làm việc. Sau đó, bạn có thể dùng hàm này bên trong lapply() giống hệt như với các hàm có sẵn của R.
Ở bài trước, bạn đã dùng lapply() để chuyển thông tin về các nhà thống kê tiên phong yêu thích của bạn thành một danh sách các vector gồm hai chuỗi ký tự. Giờ hãy viết một chút mã để tách riêng tên và năm sinh.
Mã mẫu đã bao gồm đoạn định nghĩa select_first(), hàm này nhận một vector làm đầu vào và trả về phần tử đầu tiên của vector đó.
Bài tập này là một phần của khóa học
R nâng cao
Hướng dẫn bài tập
- Áp dụng
select_first()lên các phần tử củasplit_lowvớilapply()và gán kết quả cho biến mớinames. - Tiếp theo, viết hàm
select_second()thực hiện đúng chức năng tương tự cho phần tử thứ hai của một vector đầu vào. - Cuối cùng, áp dụng hàm
select_second()lênsplit_lowvà gán đầu ra cho biếnyears.
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 from previous exercise:
pioneers <- c("GAUSS:1777", "BAYES:1702", "PASCAL:1623", "PEARSON:1857")
split <- strsplit(pioneers, split = ":")
split_low <- lapply(split, tolower)
# Write function select_first()
select_first <- function(x) {
x[1]
}
# Apply select_first() over split_low: names
# Write function select_second()
# Apply select_second() over split_low: years