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)
。因子变量在内部是整数。因此,很容易将它们变成整型变量。
所以这是一个快速的问题。
我有一个面板数据的数据框,其中每个人都有一列 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)
。因子变量在内部是整数。因此,很容易将它们变成整型变量。