我有一个看起来像这样的矢量:
c(1,1,1,1,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5..)
Run Code Online (Sandbox Code Playgroud)
我想获得元素更改时的索引,即(1,5,9,...)
我知道如何使用for循环,但我正在尝试更快的方式,因为我的向量非常大.
谢谢,
尝试
which(c(TRUE,diff(v1)!=0))
Run Code Online (Sandbox Code Playgroud)
要么
match(unique(v1), v1)
Run Code Online (Sandbox Code Playgroud)
或者如果矢量已排序
head(c(1, findInterval(unique(v1), v1)+1),-1)
Run Code Online (Sandbox Code Playgroud)
v1 <- c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
4, 4, 5, 5, 5, 5, 5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |