相关疑难解决方法(0)

data.table | 组内更快的逐行递归更新

我必须执行以下递归的逐行操作来获取z:

myfun = function (xb, a, b) {

z = NULL

for (t in 1:length(xb)) {

    if (t >= 2) { a[t] = b[t-1] + xb[t] }
    z[t] = rnorm(1, mean = a[t])
    b[t] = a[t] + z[t]

}

return(z)

}

set.seed(1)

n_smpl = 1e6 
ni = 5

id = rep(1:n_smpl, each = ni)

smpl = data.table(id)
smpl[, time := 1:.N, by = id]

a_init = 1; b_init = 1
smpl[, ':=' (a = a_init, b = b_init)] …
Run Code Online (Sandbox Code Playgroud)

recursion r shift data.table

17
推荐指数
1
解决办法
1608
查看次数

标签 统计

data.table ×1

r ×1

recursion ×1

shift ×1