แล้วสิ่งต่อไปนี้โดยที่ y คือชื่อเมทริกซ์ของคุณและคุณกำลังมองหาค่าสูงสุดในเมทริกซ์ทั้งหมด:
row(y)[y==max(y)]
หากคุณต้องการแยกแถว:
y[row(y)[y==max(y)],] # this returns unsorted rows.
ในการส่งคืนแถวที่เรียงลำดับให้ใช้:
y[sort(row(y)[y==max(y)]),]
ข้อดีของวิธีนี้คือคุณสามารถเปลี่ยนเงื่อนไขภายในเป็นอะไรก็ได้ที่คุณต้องการ นอกจากนี้การใช้col(y)
และตำแหน่งของเครื่องหมายจุลภาคแขวนคุณยังสามารถแยกคอลัมน์ได้
y[,col(y)[y==max(y)]]
หากต้องการค้นหาเฉพาะแถวสำหรับค่าสูงสุดในคอลัมน์ใดคอลัมน์หนึ่งให้พูดว่าคุณสามารถใช้คอลัมน์ 2:
seq(along=y[,2])[y[,2]==max(y[,2])]
อีกครั้งเงื่อนไขมีความยืดหยุ่นในการค้นหาข้อกำหนดที่แตกต่างกัน
ดู "บทนำสู่ S และ S-Plus" ที่ยอดเยี่ยมของ Phil Spector บทที่ 5 สำหรับแนวคิดเพิ่มเติม