任何人都知道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
谢谢!
答案 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) )