return 对应于 R 中唯一元素的重复元素的索引

return indices of duplicated elements corresponding to the unique elements in R

有人知道 R 中是否有内置函数可以 return 对应于唯一元素的重复元素的索引吗? 例如我有一个向量 <- ["A","B","B","C","C"] unique(a) 将给出 ["A","B","C"] duplicated(a) 将给出 [F,F,T,F,T] 是否有一个内置函数来获取与原始向量 a 相同长度的索引向量,它显示了唯一向量中 a 的元素的位置(在本例中为 [1,2,2,3,3]) ?

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

谢谢!

我们可以使用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")

这应该有效:

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

或者只是:

as.numeric(factor(a) )