如何用R更改列中的数字

时间:2014-07-20 19:45:50

标签: r aggregate apply

我有一个列

的表
X <- c(6,6,6,10,10,26,26,26,26,26,80)

所以在X中我们有4个唯一的数字。

如何更改每个值的计算?例如:6,6,6位于第一位,所以使它们等于1; 10,10位于第二位,使它们等于2,依此类推。

2 个答案:

答案 0 :(得分:4)

可以使用match

完成此操作
> X <- c(6,6,6,10,10,26,26,26,26,26,80)
> match(X, unique(X))
# [1] 1 1 1 2 2 3 3 3 3 3 4

答案 1 :(得分:3)

如果独特元素没有排序,这将给出与理查德略有不同的答案:

X <- c(6,6,6,10,10,26,26,26,26,26,80)
as.numeric(factor(X) )
 [1] 1 1 1 2 2 3 3 3 3 3 4

比较

> X <- c(80, 6,6,6,10,10,26,26,26,26,26)
> as.numeric(factor(X))
 [1] 4 1 1 1 2 2 3 3 3 3 3
> match(X, unique(X))
 [1] 1 2 2 2 3 3 4 4 4 4 4