【发布时间】:2021-11-08 23:24:58
【问题描述】:
我想查找以前的最大值列表。所以对于一个向量: 3, 2,2,3,4,3,9,5,2,3,4,6,120,1 第一个最大值是 3,第二个最大值是 4(因为,4>3),然后是 9(因为 9>4),然后是 120(120>9) 因此,作为输出,我需要以下位置: 1,5,7,13
在没有 for 循环的情况下有没有办法做到这一点?
```
vector<-c(3, 2,2,3,4,3,9,5,2,3,4,6,120,1)
results<-1
max<-3
for(i in 2:length(vector)){
if(vector[i]>max{
results<-c(results, i)
max<-vector[i]}
else {next}
}
```
【问题讨论】:
-
您为什么需要使用
dplyr完成这项工作? -
match(unique(x <- cummax(vector)), x) -
with(rle(cummax(x)), which(sequence(lengths)==1))另一种奇怪的方式