Мне нужны некоторые подсказки, чтобы создать эффективный цикл в векторе, но для цикла «FOR ...» из-за проблем с оптимизацией. На первый взгляд рекомендуется использовать такие функции, как apply()
, sapply()
.Как закодировать вектор, сравнивающий строки без FOR
У меня есть вектор преобразуется в матрицу:
x1<-c(1,2,4,1,4,3,5,3,1,0)
шлейфового вектора мне нужно заменить все x1 [+ 1] = x1 [I], если х [г]> х [I + 1 ]. Пример: Входной вектор:
x1<-as.matrix(c(1,2,4,1,4,3,5,3,1,0))
Выходной вектор:
c(1,2,4,4,4,4,5,5,5,5)
Мой подход заключается в использовании функции пользователя в apply()
, но у меня есть некоторые трудности, как правильно закодировать отношение х [I] и x [i + 1] в пользовательской функции. Буду очень признателен за ваши идеи или советы.
только 'cummax (x1)'? – Khashaa
@Khashaa Пожалуйста, подумайте, что это решение. Это отличный вариант. – akrun
@akrun Слишком короткий для правильного ответа. Вы могли бы также добавить это к своему ответу. – Khashaa