如何在向量中找到第一个位置,其中所有其余值都相同

时间:2016-01-20 21:23:09

标签: r sorting locate

我有一个向量X,如下所示:

X = c(30, 10, 10, 15, 25, 1, 10, 55, 10, 1, 10, 5, 5, 5, 5, 10, 5, 5, 5, 5, 5, 5, 5, 5) 
                                                                ^
                                                                17

我想创建一个函数,如果我输入上面的向量和数字n,它会显示连续n的开始位置。在上面的X中,如果从开始第17个位置起我的n是5,则所需的数字是17,其余的向量都是5。

所以,如果我想要一个函数f,这样f(X,5)就能给我17.有人能帮助我以最快的方式实现这个吗?

1 个答案:

答案 0 :(得分:2)

如果我们假设最后一个元素总是5(根据OP),我们可以反转向量,找到第一个非五,从向量的长度中减去它并添加2以便再次切换方向

length(X) - which.max(rev(X) != 5) + 2
# [1] 17