มีเหตุผลใดบ้างที่ฉันควรใช้
map(<list-like-object>, function(x) <do stuff>)
แทน
lapply(<list-like-object>, function(x) <do stuff>)
ผลลัพธ์ควรเหมือนกันและมาตรฐานที่ฉันทำดูเหมือนจะแสดงว่าlapply
เร็วกว่าเล็กน้อย (ควรเป็นmap
ความต้องการในการประเมินอินพุตที่ไม่ได้มาตรฐานการประเมินทั้งหมด)
ดังนั้นจะมีเหตุผลว่าทำไมสำหรับกรณีที่เรียบง่ายเช่นที่จริงผมควรพิจารณาเปลี่ยนpurrr::map
? ผมไม่ได้ถามเกี่ยวกับการชอบที่นี่หนึ่งหรือไม่ชอบเกี่ยวกับไวยากรณ์ฟังก์ชันอื่น ๆ โดย purrr ฯลฯ แต่อย่างเคร่งครัดเกี่ยวกับการเปรียบเทียบpurrr::map
กับสมมติว่าใช้การประเมินผลมาตรฐานคือlapply
map(<list-like-object>, function(x) <do stuff>)
มีข้อได้เปรียบอะไรบ้างที่purrr::map
มีในด้านประสิทธิภาพการจัดการข้อยกเว้น ฯลฯ ? ความคิดเห็นด้านล่างแนะนำว่าไม่เป็นเช่นนั้น แต่อาจมีบางคนที่สามารถอธิบายรายละเอียดเพิ่มเติมได้อีกเล็กน้อย?
~{}
แลมบ์ดาลัด (มีหรือไม่มี{}
ซีลข้อตกลงสำหรับฉันธรรมดาpurrr::map()
. ประเภทการบังคับใช้ของpurrr::map_…()
ที่มีประโยชน์และป้านน้อยกว่าvapply()
. purrr::map_df()
เป็นฟังก์ชั่นสุดแพง แต่ก็ยังช่วยลดความยุ่งยากรหัส. มีอะไรผิดพลาดกับการผสานกับฐาน R [lsv]apply()
แม้ว่า .
purrr
ของ จุดของฉันต่อไปนี้: tidyverse
เป็นนิยายสำหรับการวิเคราะห์ / การโต้ตอบ / รายงานสิ่งที่ไม่ได้สำหรับการเขียนโปรแกรม หากคุณต้องการใช้งานlapply
หรือmap
คุณกำลังเขียนโปรแกรมอยู่และอาจจบลงด้วยการสร้างแพ็คเกจหนึ่งวัน จากนั้นยิ่งพึ่งพาน้อยที่สุด บวก: บางครั้งฉันเห็นคนใช้map
ด้วยไวยากรณ์ค่อนข้างชัดเจนหลังจาก และตอนนี้ฉันเห็นการทดสอบการแสดง: ถ้าคุณคุ้นเคยกับapply
ครอบครัว: ทำตาม
tidyverse
แม้ว่าคุณอาจได้รับประโยชน์จากท่อ%>%
และฟังก์ชั่นที่ไม่ระบุชื่อ~ .x + 1
ไวยากรณ์