คำถามติดแท็ก sapply

10
ฟังก์ชั่นการจัดกลุ่ม (tapply, by, aggregate) และ * ใช้ตระกูล
เมื่อใดก็ตามที่ฉันต้องการทำอะไรบางอย่าง "map" py ใน R ฉันมักจะพยายามใช้ฟังก์ชั่นในapplyครอบครัว อย่างไรก็ตามฉันไม่เคยเข้าใจความแตกต่างระหว่างพวกเขา - วิธี { sapply, lapplyฯลฯ } ใช้ฟังก์ชันกับอินพุต / จัดกลุ่มอินพุตเอาต์พุตจะเป็นอย่างไรหรือแม้กระทั่งอินพุตที่เป็นดังนั้นฉันจึงมักจะ เพียงผ่านพวกเขาทั้งหมดจนกว่าฉันจะได้รับสิ่งที่ฉันต้องการ ใครสามารถอธิบายวิธีการใช้อันไหนได้บ้าง ความเข้าใจในปัจจุบันของฉัน (อาจไม่ถูกต้อง / ไม่สมบูรณ์) คือ ... sapply(vec, f): input เป็นเวกเตอร์ เอาท์พุทเป็นเวกเตอร์ / เมทริกซ์ที่องค์ประกอบiคือf(vec[i])ให้คุณเมทริกซ์ถ้าfมีเอาท์พุทหลายองค์ประกอบ lapply(vec, f): เหมือนกันsapplyแต่เอาท์พุทเป็นรายการ? apply(matrix, 1/2, f): input เป็นเมทริกซ์ เอาต์พุตเป็นเวกเตอร์โดยที่อิลิเมนต์iคือ f (แถว / col i ของเมทริกซ์) tapply(vector, grouping, f): output …
1040 r  lapply  sapply  tapply  r-faq 

6
ใช้ฟังก์ชันกับทุกแถวของเมทริกซ์หรือกรอบข้อมูล
สมมติว่าฉันมีเมทริกซ์คูณ 2 และฟังก์ชันที่ใช้เวกเตอร์ 2 ตัวเป็นหนึ่งในอาร์กิวเมนต์ของมัน ฉันต้องการใช้ฟังก์ชันกับแต่ละแถวของเมทริกซ์และรับ n-vector วิธีการทำใน R? ตัวอย่างเช่นฉันต้องการคำนวณความหนาแน่นของการแจกแจงแบบปกติมาตรฐาน 2 มิติในสามจุด: bivariate.density(x = c(0, 0), mu = c(0, 0), sigma = c(1, 1), rho = 0){ exp(-1/(2*(1-rho^2))*(x[1]^2/sigma[1]^2+x[2]^2/sigma[2]^2-2*rho*x[1]*x[2]/(sigma[1]*sigma[2]))) * 1/(2*pi*sigma[1]*sigma[2]*sqrt(1-rho^2)) } out <- rbind(c(1, 2), c(3, 4), c(5, 6)) วิธีการใช้ฟังก์ชันกับแต่ละแถวout? จะส่งผ่านค่าสำหรับอาร์กิวเมนต์อื่น ๆ นอกเหนือจากจุดไปยังฟังก์ชันตามที่คุณระบุได้อย่างไร?
130 r  function  matrix  apply  sapply 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.