ใช้ lapply พร้อมอาร์กิวเมนต์เพิ่มเติม
ในวิดีโอ ฟังก์ชัน triple() ถูกปรับเปลี่ยนเป็นฟังก์ชัน multiply() เพื่อให้มีความยืดหยุ่นมากขึ้น lapply() รองรับฟังก์ชันที่ต้องการอาร์กิวเมนต์มากกว่าหนึ่งตัว เช่น ฟังก์ชัน multiply():
multiply <- function(x, factor) {
x * factor
}
lapply(list(1,2,3), multiply, factor = 3)
ในบานหน้าต่างด้านขวามีเวอร์ชันทั่วไปของฟังก์ชัน select ที่เคยเขียนไว้ก่อนหน้านี้ นั่นคือ select_el() ซึ่งรับเวกเตอร์เป็นอาร์กิวเมนต์แรก และรับดัชนีเป็นอาร์กิวเมนต์ที่สอง แล้วคืนค่าสมาชิกของเวกเตอร์ที่ตำแหน่งดัชนีที่ระบุ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลาง
คำแนะนำการฝึกหัด
เรียกใช้ lapply() สองครั้งเพื่อเรียกฟังก์ชัน select_el() กับทุกสมาชิกใน split_low โดยครั้งแรกกำหนด index เป็น 1 และครั้งที่สองกำหนด index เป็น 2 แล้วกำหนดผลลัพธ์ให้กับตัวแปร names และ years ตามลำดับ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Definition of split_low
pioneers <- c("GAUSS:1777", "BAYES:1702", "PASCAL:1623", "PEARSON:1857")
split <- strsplit(pioneers, split = ":")
split_low <- lapply(split, tolower)
# Generic select function
select_el <- function(x, index) {
x[index]
}
# Use lapply() twice on split_low: names and years