如何提取rollapply当前为函数提供的向量索引?

时间:2015-10-28 14:17:48

标签: r data.table rollapply

我希望在数据表中由2列表示的两次系列上进行一些关联工作。我基本上需要能够在一列上运行rollapply,并能够使用rollapply的当前位置访问被调用函数中的另一列。

让我们考虑以下数据表:

> DT = data.table(y=c(1,3,6), v=1:9)
> DT
   y v
1: 1 1
2: 3 2
3: 6 3
4: 1 4
5: 3 5
6: 6 6
7: 1 7
8: 3 8
9: 6 9

> ft=function(x) if( mean( x[,2,with=FALSE] ) == 4.5) r=c(r,mean(DT[INDEX:(INDEX+3), mean(v)]) )
> rollapply(DT, width=2, function(x) r=mean(x))

结果向量r将是2 5,因为当rollapply进入第2,5和8行时,条件mean( x[,2,with=FALSE] ) == 4.5)为真(但第8行下方没有3行)所以你无法得到他们的意思。)

> r
[1] 2 5

INDEX是当前行,rollapply从数据DT中提取长度为2的向量,以将其提供给函数ft。

我不知道是否有可能这样做,因为它可能会破坏整个应用程序的运作方式。

0 个答案:

没有答案