เมื่อฉันดูที่มาของแพ็คเกจ R ฉันเห็นฟังก์ชันที่sweep
ใช้บ่อยมาก บางครั้งจะใช้เมื่อฟังก์ชันที่ง่ายกว่านั้นมีผลเพียงพอ (เช่นapply
) ในบางครั้งก็เป็นไปไม่ได้ที่จะรู้ว่ากำลังทำอะไรอยู่โดยไม่ต้องใช้เวลาพอสมควรในการก้าวผ่านบล็อกโค้ดที่อยู่ในนั้น
ความจริงที่ว่าฉันสามารถสร้างsweep
เอฟเฟกต์ซ้ำได้โดยใช้ฟังก์ชันที่ง่ายกว่านั้นแสดงว่าฉันไม่เข้าใจsweep
กรณีการใช้งานหลักของฉันและการที่ฟังก์ชันนี้ถูกใช้บ่อยครั้งแสดงให้เห็นว่ามันมีประโยชน์มากทีเดียว
บริบท:
sweep
เป็นฟังก์ชันในไลบรารีมาตรฐานของ R ข้อโต้แย้งคือ:
sweep(x, MARGIN, STATS, FUN="-", check.margin=T, ...)
# x is the data
# STATS refers to the summary statistics which you wish to 'sweep out'
# FUN is the function used to carry out the sweep, "-" is the default
ที่คุณสามารถดูขัดแย้งจะคล้ายกับapply
ว่าต้องใช้พารามิเตอร์หนึ่งมากขึ้นsweep
STATS
ความแตกต่างที่สำคัญอีกประการหนึ่งคือsweep
ส่งคืนอาร์เรย์ที่มีรูปร่างเหมือนกันกับอาร์เรย์อินพุตในขณะที่ผลลัพธ์ที่ส่งคืนจะapply
ขึ้นอยู่กับฟังก์ชันที่ส่งเข้ามา
sweep
ในการดำเนินการ:
# e.g., use 'sweep' to express a given matrix in terms of distance from
# the respective column mean
# create some data:
M = matrix( 1:12, ncol=3)
# calculate column-wise mean for M
dx = colMeans(M)
# now 'sweep' that summary statistic from M
sweep(M, 2, dx, FUN="-")
[,1] [,2] [,3]
[1,] -1.5 -1.5 -1.5
[2,] -0.5 -0.5 -0.5
[3,] 0.5 0.5 0.5
[4,] 1.5 1.5 1.5
sweep
ดังนั้นในการสรุปสิ่งที่ฉันกำลังมองหาเป็นกรณีการใช้งานที่เป็นแบบอย่างหรือสองสำหรับ
โปรดอย่าท่องหรือเชื่อมโยงไปยังเอกสาร R รายชื่อส่งเมลหรือแหล่งข้อมูล R 'หลัก' - ถือว่าฉันได้อ่านแล้ว สิ่งที่ฉันสนใจคือโปรแกรมเมอร์ / นักวิเคราะห์ R ที่มีประสบการณ์ใช้sweep
ในโค้ดของตัวเองอย่างไร