小编jay*_*ayc的帖子

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.2M obs的部分数据):

> dta
     id treatment      score
 1:   5         0 0.02381024
 2:  10         0 0.05428605
 3:  22         0 0.02118124
 4:  27         0 0.01495214
 5:  45         0 0.01877916
 6:  50         0 0.02120360
 7:  58         0 0.02207263
 8:  60         0 0.02807019
 9:  61         0 0.05432927
10:  65         1 0.59612077
11:  68         0 0.02482168
12:  72         1 0.14582400
13:  73         0 0.02371670
14:  77         0 0.02608826
15:  87         0 0.06852409
16:  88         0 0.07473471
17:  94         0 0.07160314
18:  97         0 0.02040747
19: …
Run Code Online (Sandbox Code Playgroud)

r matching data.table

5
推荐指数
1
解决办法
595
查看次数

标签 统计

data.table ×2

r ×2

matching ×1

recursion ×1

shift ×1