R - 如何使用 for-loop 加速面板数据构建过程

R - How to speed up panel data construction process using for-loop

我计划构建一个面板数据集,作为第一步,我尝试为每个 99537 个独特观察创建一个具有 25 个重复 ID(每年分配给相同的 25 个 ID)的向量。我到目前为止是:

unique_id=c(1:99573) 
panel=c()

for(i in 1:99573){
x=rep(unique_id[i],25)
panel=append(panel,x)
}

我遇到的问题是上面的代码花费了太多时间。 RStudio 一直在处理,不给我任何输出。有没有其他方法可以加快这个过程?请与我分享任何想法。

这里不需要循环

panel <- rep(unique_id, each = 25)

基准

system.time(panel <- rep(unique_id, each = 25))
#   user  system elapsed 
#  0.046   0.002   0.047 

length(panel)
#[1] 2489325