Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据表R中累积应用的滚动联接_R_Join_Data.table - Fatal编程技术网

数据表R中累积应用的滚动联接

数据表R中累积应用的滚动联接,r,join,data.table,R,Join,Data.table,我有两个data.table对象。一个对象包含每年6月或每年的数据(a)。另一个包含每年每个月的数据(b)。我想加入他们,向前滚动a。但是,我想乘以自上次a可用日期以来b的累计总和。以下是一个例子: dt1 = data.table(a = c(1,2,1), t = c(1, 12, 24)) dt2 = data.table(b = 1:24, t = seq(from = 1, to = 24, by = 1)) 合并的结果应如下所示: t a b 1 1 1 2 3

我有两个
data.table
对象。一个对象包含每年6月或每年的数据(
a
)。另一个包含每年每个月的数据(
b
)。我想加入他们,向前滚动
a
。但是,我想乘以自上次
a
可用日期以来
b
的累计总和。以下是一个例子:

dt1 = data.table(a = c(1,2,1), t = c(1, 12, 24))
dt2 = data.table(b = 1:24, t = seq(from = 1, to = 24, by = 1))
合并的结果应如下所示:

 t  a  b
 1  1  1
 2  3  2
 3  6  3
 4 10  4
...
11 66 11
12  2 12
13 15 13
14 29 14
...

请注意,下一次
a
实际可用时,即联接中使用的值

你能提供更多或你想要的结果吗,至少在t=12后几次。是否重新启动cumsum?是的,重新启动cumsum。添加了更多信息。不确定,可能类似于
res,问题是它假设
a
是唯一的。在这个玩具例子中是正确的,但不是一般的,我现在的想法是使用间隔作为索引。我本来希望有重叠连接的东西能起作用,但我不太明白,你能提供更多或你想要的结果吗,至少在t=12之后。是否重新启动cumsum?是的,重新启动cumsum。添加了更多信息。不确定,可能类似于
res,问题是它假设
a
是唯一的。在这个玩具例子中是正确的,但不是一般的,我现在的想法是使用间隔作为索引。我希望有重叠连接的东西能起作用,但我不太明白