3

私はendpoints、データがごくわずかに規則的である場合、つまり、一部の観測値が欠落している場合に、どのように時間を選択するかを理解しようとしています。1分間の返品があり、数分が欠落しています。5分間隔に変換しようとしています。どのendpoints時間を維持するかをどのように決定しますか?私が使用する呼び出しは次のとおりです。

endpoints(ret_1_min_xts, k=5, "minutes")

私のシリーズは次のようになります。例:

1986-02-04 09:32:00 1
1986-02-04 09:33:00 2
1986-02-04 09:34:00 3
1986-02-04 09:35:00 4
1986-02-04 09:36:00 5
1986-02-04 09:37:00 6
1986-02-04 09:38:00 7
1986-02-04 09:39:00 8
1986-02-04 09:40:00 9
1986-02-04 09:41:00 10
1986-02-04 09:42:00 11
1986-02-04 09:45:00 12
...

endpoints戻るための呼び出しで:

1986-02-04 09:34:00
1986-02-04 09:39:00 
1986-02-04 09:42:00 
1986-02-04 09:49:00
1986-02-04 09:54:00
...

のソースコードを見ようとしてendpointsいますが、関数はCであり、.Call;を介して呼び出されているようです。私はそれを正しく理解していますか?誰かが使用された方法論を説明できれば、それは非常に役に立ちます。

4

1 に答える 1

3

上記のコメントで回答され、endpoints.cソースコードから直接取得されたように、関数はこれを返します。

c(0,which(diff(_x%/%on%/%k+1) != 0),NROW(_x))

どこ_x = .index(my_xts)

これは実際に何をしますか?関数の呼び出しに関してendpoints

内部のものはdiff最初に秒を削除し、次にk分単位で移動します(これはすべて整数除算を使用します)。 diff次に、次の増分に変更したwhichポイントをメモし、増分が発生したポイントを返します。実際には、これは5分間隔ごとに最後のポイントを返すだけです(私の呼び出しではk = 5)

于 2012-08-12T17:08:01.427 に答える