Начиная с вектора, я хочу удалить элементы, чтобы остальные элементы увеличивались. У меня уже есть итеративный подход, который идет следующим образом:Создать увеличивающий вектор
test<- c(2,4,7,2,3,6,8)
while(!all(diff(test)>=0)){
rm <- which(diff(test)<0)[1]+1
if(!is.na(rm)) test<-test[-rm]
}
Ожидаемый результат в моем примере будет (2,4,7,8).
Есть ли более разумный способ сделать это?
EDIT: Добавлен ожидаемый выход алгоритма.
EDIT: Typo выхода.
EDIT: Исправлен мой код, чтобы он дал желаемый результат.
EDIT: Изменен пример с более общим, добавив 8 в конец.
Проблема, о которой вы говорите, не определена. Может быть (2,4,7), может быть (2,3,6) и так далее. – tonytonov
Каков ваш желаемый результат? Я бы подумал «c (2,4,7)», но ваш код предлагает что-то другое. И мне непонятно, что вы хотите, если, скажем, 'test <- c (2,4,7,2,3,6,9)'. – ulfelder
вывод, который дает код: 'c (2, 2, 3, 6)' – Cath