r - 查找向量中唯一元素的最后一次出现的索引

标签 r

我有一个无序向量v,如下所示,我想找到列表中每个唯一元素最后一次出现的索引。

v <- scan(text="1 2 1 2 1 1 1 3 1 2 2 3 3 3 1 1 1 4 1 1 1 4 1 5 5 6
                6 2 3 3 4 4 2 2 2 2 2 3 3 3 1 4 4 4 3 2 5 5 5 5")
v
# [1] 1 2 1 2 1 1 1 3 1 2 2 3 3 3 1 1 1 4 1 1 1 4 1 5 5 6 6 2 3 3 4 4 2 2 2 2 2 3 3 3 
# [41] 1 4 4 4 3 2 5 5 5 5


预期结果(按1、2、3、4、5的顺序):

41 46 45 44 50


我知道我可以使用unique(unlist(v))查找唯一元素,但是如何找到它们最后一次出现的索引?任何想法?

提前致谢。

最佳答案

即使数据没有排序,另一种方法仍然有效:

length(v1)-match(unique(v1),rev(v1))+1

关于r - 查找向量中唯一元素的最后一次出现的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27801589/

相关文章:

r - 将 R 数据帧转换为 JSON,同时将每一行分隔为一个新的 JSON 对象

r - 如何使用 ggplot2 缩放轴的时间间隔?

r - 如何编写多元响应的R公式?

r - 比较两个数据框以查找范围内的缺失值

r - R中的 "{"类是什么?

dplyr 中带条件的递归函数

r - 更改包中所有函数的通用默认参数

r - 矢量化列加法

r - 使用 HTML UI (index.html) 将交互式图表添加到 Shiny

r - 分别编辑 2 stat_hex_bin geoms ggplot2