Допустим, у меня есть вектор
x <- c(300, 320, 342, 355, 399, 453, 500, 532, 2, 3, 4, 5, 100, 300, 500, 550, 2, 3)
Как вы можете видеть, он имеет некоторые увеличивающиеся значения, затем значения уменьшаются, затем снова увеличиваются и т. Д.
Точка, в которойпервое уменьшение находится в значении 532, за которым следует значение 2. Итак, в этот момент я хочу добавить к 532 значение 2, поэтому у меня теперь 534. Затем добавьте к 534 значение 3, затем значение 4, затем значение 5 ии так далее.
Итак, я суммирую значения после первого максимального вхождения, значение которого равно 532.
Итак, мой результат будет следующим:
300, 320, 342, 355, 399, 453, 500, 532, 534, 537, 541, 546, 646, 964, 1446, 1996, 1998 , 2001
Я пытаюсь:
MY_FUNC <- function(Values)
{
Values <- Values[!is.na(Values)]
max_val = 0
index = 0;
for (i in 1:length(Values))
{
if (Values[i] > max_val)
{
max_val = Values[i]
index = i;
#break when first occurence found
}
}
new_vec <- Values[index] + cumsum(Values[(index + 1):length(Values)])
new_vec
}
x <- c(300, 320, 342, 355, 399, 453, 500, 532, 2, 3, 4, 5, 100, 300, 500, 550, 2, 3)
MY_FUNC(x)
но я не знаю, как найти первое максимальное вхождение и разрыв цикла.