В R у меня есть элемент x
и вектор v
. Я хочу найти первый индекс элемента, v
который равен x
. Я знаю, что один из способов сделать это:, which(x == v)[[1]]
но это кажется чрезмерно неэффективным. Есть ли более прямой способ сделать это?
Для бонусных баллов есть ли функция, которая работает, если x
вектор? То есть он должен возвращать вектор индексов, указывающих положение каждого элемента x
в v
.
which(x == v)[[1]]
это не так.
which(x == v)[[1]]
это не так уж и неэффективно. Это один==
оператор сравнения ( ), применяемый ко всем элементам вектора, и одно подмножество индексов (which
). Вот и все. Ничего, что должно быть актуально, если вы не выполняете 10.000 повторений для этой функции. Другие решения, такие какmatch
иPosition
могут не возвращать столько данныхwhich
, но они не обязательно более эффективны.