У меня довольно простая проблема, которая приносит мне печаль, несмотря на пару часов зависания волос, поэтому я подумал, что попрошу вашу помощь. Я ищу простой способ вернуть вектор, содержащий только последний элемент некоторого исходного вектора.Захват последнего элемента вектора
Это мой исходный вектор, «а»:
a<-c(0,0,1,0,0,1,0,0,1,0)
Я хочу, чтобы получить вектор «Ъ», который имеет ту же длину, как «а», и несет только его последний nonmissing элемент. Другими словами,
b = (0,0,0,0,0,0,0,0,1,0)
Я был в состоянии сделать это, построив цикл выполняется в обратном направлении от конца вектора «а» на его первый элемент, но, кажется, решительно безвкусный. Я уверен, что есть лучший способ.
В случае, если кому-то интересно, более важная проблема: я пытаюсь изменить значение одного вектора, где он соответствует последнему непустому элементу другого вектора.
Большое спасибо за любую помощь.
Я нахожу это, чтобы победить их всех: 'заменить (0 * а, which.max (cumsum (а)), 1)'. Интуитивно я считаю, что все, что использует 'which' будет медленным, потому что длина вывода неизвестна заранее. Не относится к 'cumsum' и' which.max'. – flodel