เมื่อ sapply ไม่สามารถย่อผลลัพธ์ได้ จะเกิดอะไรขึ้น?
ดูเหมือนว่า sapply() จะทำได้ดีมากในทุกตัวอย่างที่ผ่านมา โดยสามารถย่อผลลัพธ์ที่ซับซ้อนของ lapply() ให้กระชับขึ้นได้เสมอ แต่ในชีวิตจริง มีบางอย่างที่ย่อให้ง่ายขึ้นไม่ได้ แล้ว sapply() จะรับมืออย่างไร?
เราได้เตรียมฟังก์ชัน below_zero() ไว้ให้แล้ว ฟังก์ชันนี้รับเวกเตอร์ตัวเลขและคืนค่าเฉพาะตัวเลขที่น้อยกว่าศูนย์อย่างเคร่งครัด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลาง
คำแนะนำการฝึกหัด
- ใช้
sapply()เรียกbelow_zero()กับtempแล้วเก็บผลลัพธ์ไว้ในตัวแปรfreezing_s - ใช้
lapply()เรียกbelow_zero()กับtempแล้วเก็บลิสต์ที่ได้ไว้ในตัวแปรfreezing_l - เปรียบเทียบ
freezing_sกับfreezing_lโดยใช้ฟังก์ชันidentical()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# temp is already prepared for you in the workspace
# Definition of below_zero()
below_zero <- function(x) {
return(x[x < 0])
}
# Apply below_zero over temp using sapply(): freezing_s
# Apply below_zero over temp using lapply(): freezing_l
# Are freezing_s and freezing_l identical?