ใช้ lapply กับฟังก์ชันที่สร้างเอง
อย่างที่ Filip อธิบายไว้ในวิดีโอ สามารถใช้ lapply() ร่วมกับฟังก์ชันที่สร้างเองได้เช่นกัน เพียงแค่เขียนฟังก์ชันขึ้นมาและตรวจสอบว่าฟังก์ชันนั้นพร้อมใช้งานใน workspace จากนั้นก็นำไปใช้ใน lapply() ได้เหมือนกับฟังก์ชันมาตรฐานของ R เลย
ในแบบฝึกหัดที่แล้ว ได้ใช้ lapply() เพื่อแปลงข้อมูลเกี่ยวกับนักสถิติผู้บุกเบิกที่คุณชื่นชอบให้เป็น list ของ vector ที่ประกอบด้วยสตริงสองตัว คราวนี้มาเขียนโค้ดเพื่อแยกชื่อและปีเกิดออกจากกัน
โค้ดตัวอย่างได้กำหนด select_first() ไว้แล้ว ซึ่งรับ vector เป็น input และคืนค่าองค์ประกอบแรกของ vector นั้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลาง
คำแนะนำการฝึกหัด
- ใช้
select_first()กับแต่ละองค์ประกอบของsplit_lowด้วยlapply()แล้วกำหนดผลลัพธ์ให้กับตัวแปรชื่อnames - จากนั้นเขียนฟังก์ชัน
select_second()ที่ทำงานแบบเดียวกันแต่คืนค่าองค์ประกอบที่สองของ vector ที่รับเข้ามา - สุดท้าย ใช้ฟังก์ชัน
select_second()กับsplit_lowแล้วกำหนดผลลัพธ์ให้กับตัวแปรyears
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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