R'de bir elementim x
ve bir vektörüm var v
. Ben bir elemanın ilk indeksini bulmak istiyorum v
o 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, x
bir 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 x
iç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 gibimatch
vePosition
çok fazla veri döndürmeyebilirwhich
, ancak bunların daha verimli olması gerekmez.