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