Мне нужно определить индекс столбца для первого и конечного появления определенного значения в каждой строке матрицы. Например, если моя матрица состоит в следующем:Индекс столбца последнего вхождения значения в каждой строке
0 10 10 10 0 0
10 10 10 0 0 0
0 0 0 0 10 10
и мне нужен вектор, содержащий индексы столбцов первого вхождения 10 в каждой строке и вектор конечного возникновения, полученные векторы были бы (2,1,5)
и (4,3,6)
, соответственно.
я написал следующую функцию, используемую его с помощью функции применяются, чтобы найти первое вхождение:
Myfunc <- function(x){which==10)[1]
Myfirst <- apply(x,1,Myfunc)
Однако, я не могу показаться, чтобы выяснить, как получить вектор для окончательного появления. Может ли кто-нибудь показать мне, как использовать функцию which()
для этого или предложить альтернативный метод?
Благодаря
rmk, спасибо за ответ. Я попробовал ваше предложение, но он вернул список вместо вектора, и я не могу найти способ его преобразования обратно в вектор. Возможно, я что-то упускаю. – jlaufenb
Если ваш data.frame имеет имена строк/col, 'v1' и' v2' должны поставляться с прикрепленными именами, но они все равно должны быть векторами, насколько я знаю. Попробуйте 'dput (df)' или 'head (df)', чтобы опубликовать некоторые данные для получения дополнительных разъяснений. – harkmug
Блестящее решение, работает как очарование как для первого, так и для последнего случая. –