0

データテーブルの 2 つの列で表される 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は、rollapply が行 2、5、および 8 に到達したときに2 5条件が真であるためです (ただし、行 8 の下に 3 行はないため、それらの平均を取得することはできません)。mean( x[,2,with=FALSE] ) == 4.5)

> r
[1] 2 5

INDEXrollapply がデータ可能な DT から長さ 2 のベクトルを抽出して関数 ft に供給する現在の行です。

適用全体がどのように機能するかを壊している可能性があるため、それが可能かどうかさえわかりません。

4

0 に答える 0