首次查找连续两个相同值的索引

问题描述 投票:0回答:1

我有一个相当简短的问题。 这些是一些可复制的示例向量:

a <- c(14,26,38,64,96,127,152,152,152,152,152,152)
b <- c(4,7,9,13,13,13,13,13,13,13,13,13,13,13)
c <- c(62,297,297,297,297,297,297,297,297,297,297,297)

很明显,在某个时刻某个值会重复直到结束。我需要准确获取该值第一次出现的索引。 因此,在这种情况下,输出将为

6,4,2
,因为在
a
127
中从第 6 个位置开始,在
b
13
中从第 4 个位置开始,在
c
297
中从第 2 个位置开始位置。 我希望这是清楚的。

有人提示如何自动获取此信息吗?

r indexing
1个回答
0
投票

你可以这样做:

get_first_last_index  <- \(x) which.max(x == tail(x, 1))
get_first_last_index(a) # 7

sapply(list(a, b, c), get_first_last_index)
# [1] 7 4 2
© www.soinside.com 2019 - 2024. All rights reserved.