R:对于大数据集,编号级别并分配给新列

时间:2015-01-04 12:51:32

标签: r levels

所以这是一个很快的问题 我有一个面板数据的数据框,其中我有一列每个人的标识/名称/ ID。让我们说这个专栏有n个级别,也就是说,在某个时间范围内,小组中有n个人 我想在数据框中添加一个N列,其值为n,即一个级别的编号 也就是说,每个ID /名称/级别都会分配一个从1到n的数字。  这是一个完成我想要的代码:

i = 1
for(l in levels(data$IDs))  {
data[data$ID == l,]$N = i
i = i+ 1
}

到目前为止一切顺利。问题:我的数据集很大。很大。手动做太多了。而上述操作需要花费太多时间。 这是一个循环,所以我的猜测是使用向量运算在R中有更快的方法。 有人知道计算速度快的方法吗?

1 个答案:

答案 0 :(得分:2)

只需使用data$N <- as.integer(data$ID)即可。因子变量是内部整数。因此,很容易将它们变成整数变量。