返回与R中的唯一元素对应的重复元素的索引

时间:2016-05-28 05:31:56

标签: r matlab duplicates unique uniqueidentifier

任何人都知道R中是否有一个内置函数可以返回与唯一元素对应的重复元素的索引? 例如,我有一个向量     a< - [“A”,“B”,“B”,“C”,“C”] 独特的(a)会给[“A”,“B”,“C”] 重复(a)将给[F,F,T,F,T] 是否有一个内置函数来获得与原始向量a相同长度的索引向量,它显示了唯一vecor中元素的位置(在本例中为[1,2,2,3,3]) ?

,即类似于matlab函数中的输出变量“ic”“unique”。 (也就是说,如果我们让c = unique(a),那么a = c(ic,:))。 http://www.mathworks.com/help/matlab/ref/unique.html

谢谢!

2 个答案:

答案 0 :(得分:3)

我们可以使用match

match(a, unique(a))
#[1] 1 2 2 3 3

或转换为factor并强制转换为integer

as.integer(factor(a, levels = unique(a)))
#[1] 1 2 2 3 3

数据

a <- c("A","B","B","C","C")

答案 1 :(得分:1)

这应该有效:

cumsum( !duplicated( sort( a)) )  # one you replace  Mathlab syntax with R syntax.

或者只是:

as.numeric(factor(a) )