如何将整数向量转换为元素首次出现顺序的对应标识值?
整数向量转首次出现顺序标识值的实现方法
给定R语言整数向量:
c(3, 2, 3, 4, 4, 5, 5, 2, 1)
需要将其转换为元素首次出现顺序对应的标识值——第一个出现的元素标识为1,第二个新出现的元素标识为2,以此类推,最终期望结果为:
1 2 1 3 3 4 4 2 6
实现代码
直接用R内置函数组合即可完成:
# 定义原向量 input_vec <- c(3, 2, 3, 4, 4, 5, 5, 2, 1) # 生成首次出现顺序标识 output_vec <- match(input_vec, unique(input_vec)) # 输出结果 output_vec
原理说明
unique(input_vec)会按元素首次出现的顺序提取原向量中的唯一值,得到c(3, 2, 4, 5, 1);match(input_vec, unique(input_vec))会逐个查找原向量元素在唯一值向量中的位置索引,这个索引就是该元素首次出现的顺序标识。
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

