В 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, но они не обязательно более эффективны.