我有一个相当简短的问题。 这些是一些可复制的示例向量:
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 个位置开始位置。
我希望这是清楚的。
有人提示如何自动获取此信息吗?
你可以这样做:
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