ใน R ฉันมีองค์ประกอบและเวกเตอร์x vฉันต้องการที่จะหาดัชนีแรกขององค์ประกอบในการที่จะมีค่าเท่ากับv xฉันรู้ว่าวิธีหนึ่งในการทำเช่นนี้คือ: which(x == v)[[1]]แต่ดูเหมือนว่าจะไม่มีประสิทธิภาพมากเกินไป มีวิธีโดยตรงมากกว่าที่จะทำหรือไม่
สำหรับคะแนนโบนัสมีฟังก์ชั่นที่ใช้งานxได้หรือไม่ถ้าเป็นเวคเตอร์? นั่นคือมันควรจะกลับเวกเตอร์ของดัชนีระบุตำแหน่งขององค์ประกอบของแต่ละที่ในxv
which(x == v)[[1]]ไม่ใช่
                
which(x == v)[[1]]จึงไม่มีประสิทธิภาพมากนัก มันเป็นตัวดำเนินการเปรียบเทียบหนึ่งรายการ (==) ที่ใช้กับองค์ประกอบเวกเตอร์ทั้งหมดและอีกหนึ่งส่วนย่อยในดัชนี (which) แค่นั้นแหละ. ไม่มีสิ่งใดที่ควรเกี่ยวข้องตราบใดที่คุณไม่ได้ใช้งานซ้ำ 10.000 ครั้งในฟังก์ชันนี้ โซลูชันอื่น ๆ เช่นmatchและPositionอาจไม่ส่งคืนข้อมูลได้มากเท่าที่whichควร แต่ไม่จำเป็นต้องมีประสิทธิภาพมากกว่า