R'de bir elementim xve bir vektörüm var v. Ben bir elemanın ilk indeksini bulmak istiyorum vo eşittir x. Bunu yapmanın bir yolu olduğunu biliyorum: which(x == v)[[1]]ama bu aşırı verimsiz görünüyor. Bunu yapmanın daha doğrudan bir yolu var mı?
Bonus puanlar için, xbir vektör ise çalışan bir işlev var mı? Olduğuna göre, her bir elemanının konumunu gösteren indekslerinin bir vektör döndürmelidir xiçinde v.
which(x == v)[[1]]olmayan bir işlevi tercih edeceğimi belirtti .
which(x == v)[[1]]çok verimsiz değildir.==Tüm vektör öğelerine uygulanan bir karşılaştırma ( ) operatörü ve indeksler (which) üzerinde bir alt kümedir . Bu kadar. Bu işlevde 10.000 tekrarlama yapmadığınız sürece bununla ilgili bir şey yok. Diğer çözümler gibimatchvePositionçok fazla veri döndürmeyebilirwhich, ancak bunların daha verimli olması gerekmez.