这是一个简单的问题。
我有一个面板数据数据框,其中有一列每个人的身份/姓名/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 中使用向量运算有一种更快的方法来做到这一点。 有人知道一种计算快速的方法吗?
最佳答案
只需使用 data$N <- as.integer(data$ID)
。因子变量内部是整数。因此,很容易将它们转换为整数变量。
关于R:对于大数据集,对级别进行编号并分配给新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765689/