Vector:如何过滤掉值递减的部分

Vector: How to filter out segments of decreasing values

假设有一个向量 sim 包含以下数字序列:

1
2
4
7
5
3
2.5
4
6

如何过滤掉所有值递减的部分,以实现 sim 只有递增的值?预期结果:

1
2
4
7
2.5
4
6

根据@akrun 的建议:

dif <- diff(sim) > 0
sim[ c(dif[1], dif) | c(dif, dif[length(dif)]) ]
[1] 1.0 2.0 4.0 7.0 2.5 4.0 6.0