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

R: Number levels and assign to new column, for a big dataset

所以这是一个快速的问题。
我有一个面板数据的数据框,其中每个人都有一列 identifications/names/IDs 。假设此列有 n 个级别,即在特定时间范围内小组中有 n 个人。
我想用这个值 n 向数据框中添加一个列 N,这是一个级别编号。
也就是说,每个 ID/name/level 都被分配了一个从 1 到 n 的数字。 这是我想要的代码:

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

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

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