2012-01-23 16 views
2

ポインタがna.locfするためのおかげで(ダレン)、更新された実施例及び以下の結果を毎日のデータをマージボラティリティ。今日のボラティリティを作成したので、毎日のデータとダニデータを再度マージしたいと思います。しかし、私は毎日とダニのデータのインデックスの違いのために、マージが "空"のままであると思われます。Rは、ティックデータと

1日のデータとチックデータをマージするにはどうすればよいですか?

例:

AGL.xts <- xts(AGL_Frame[,-1], order.by=AGL_Frame[,1]) 
    AGL.xts 
         Close 
    2012-01-19 16:46:11 32376 
    2012-01-19 16:46:32 32377 
    2012-01-19 16:46:32 32376 
    2012-01-19 16:46:42 32376 
    2012-01-19 16:46:42 32376 
    2012-01-19 16:46:42 32376 
    2012-01-19 16:46:45 32376 
    2012-01-19 16:46:48 32351 
    2012-01-19 16:46:54 32351 
    2012-01-19 16:46:57 32351 
    2012-01-19 16:46:57 32351 
    2012-01-19 16:47:14 32351 
    2012-01-19 16:47:14 32351 
    2012-01-19 16:47:19 32350 
    2012-01-19 16:47:32 32349 
    2012-01-19 16:47:32 32349 



    my.sample1 <- to.daily(AGL.xts[,1],1,'daily') 
    my.sample1 

         daily.Open daily.High daily.Low daily.Close 
    2011-12-01 17:00:27  31000  31479  30685  31350 
    2011-12-05 17:00:28  31225  31700  31015  31645 
    2011-12-06 17:00:22  31290  31626  31126  31500 
    2011-12-07 17:00:12  31550  31840  31215  31366 
    2011-12-08 17:00:09  31350  31875  31200  31200 
    2011-12-12 17:00:25  31093  31245  30310  30310 
    2011-12-13 17:00:24  30333  30767  30100  30430 
    2011-12-14 17:00:12  30210  30500  29575  29700 
    2011-12-19 17:00:03  29900  30005  29633  29679 


    my.AGL.roc <- ROC(my.sample1[,4]) 
    my.AGL.sd <- apply.rolling(my.AGL.roc, FUN="sd", width=5)*sqrt(252) 
    my.AGL.sd 
         calcs 
2011-12-05 17:00:28  NA 
2011-12-06 17:00:22  NA 
2011-12-07 17:00:12  NA 
2011-12-08 17:00:09  NA 
2011-12-12 17:00:25 0.2195421 
2011-12-13 17:00:24 0.1966806 
2011-12-14 17:00:12 0.2240305 
2011-12-19 17:00:03 0.2327860 
2011-12-20 17:00:28 0.2878848 
2011-12-21 17:00:18 0.2275700 
2011-12-22 17:00:12 0.2462184 
2011-12-28 17:00:00 0.1633643 
2011-12-29 17:00:20 0.1800739 
2012-01-03 17:00:25 0.4068977 
2012-01-04 17:00:13 0.3699694 
2012-01-05 17:00:04 0.4014607 
2012-01-09 17:00:05 0.4049482 
2012-01-10 17:00:17 0.3934479 
2012-01-11 17:00:07 0.2391906 
2012-01-12 17:00:01 0.2328756 
2012-01-16 17:00:02 0.2165803 
2012-01-17 17:00:22 0.1910748 
2012-01-18 17:00:19 0.1347729 
2012-01-19 17:00:09 0.1198476 

    merged <- merge(AGL.xts,my.AGL.sd) 
    merged <- na.locf(merged) 
    merged 

         Close Calcs  
2012-01-12 12:03:49 31920 0.2391906 
2012-01-12 12:03:52 31920 0.2391906 
2012-01-12 12:03:54 31920 0.2391906 
2012-01-12 12:03:56 31941 0.2391906 
2012-01-12 12:04:19 31910 0.2391906 
2012-01-12 12:04:21 31910 0.2391906 
2012-01-12 12:04:22 31909 0.2391906 
2012-01-12 12:04:22 31903 0.2391906 
2012-01-12 12:04:22 31910 0.2391906 
2012-01-12 12:04:23 31910 0.2391906 
2012-01-12 12:04:28 31910 0.2391906 
2012-01-12 12:04:28 31910 0.2391906 
2012-01-12 12:04:32 31910 0.2391906 
2012-01-12 12:04:32 31910 0.2391906 
2012-01-12 12:04:33 31909 0.2391906 
2012-01-12 12:04:33 31910 0.2391906 
2012-01-12 12:04:33 31910 0.2391906 
2012-01-12 12:04:33 31910 0.2391906 
2012-01-12 12:04:33 31910 0.2391906 
2012-01-12 12:04:38 31901 0.2391906 

これは毎日指標(この場合は5日間の容積)を使用し、分析目的のためにダニにそれを適用するの私の目標を達成します。アドバイスをいただきありがとうございます。

+1

再現可能な例が本当に役に立ちます。 2つの異なる日にいくつかのデータポイントを提供するだけです。あなたの例では、毎日のデータを日々のデータとマージして 'merged'オブジェクトを作成していますが、毎日のデータをダミーデータとマージしたいと思うので、何をしようとしているのか分かりません。 –

+0

例(Rセッションにコピー&ペーストすることができます)と同様に、期待するデータ出力を見るのに役立ちます。あなたのAGL.xtsオブジェクトを推測して、vol列を追加したいのですが、2011-12-12のすべてのティックが0.2195421になります。 その列に、2011-12-13のすべてのティックが0.1966806になります。 列など? –

+0

フィードバックをお寄せいただきありがとうございました。下記のダレンの提案を含めて私の例を更新しました。 –

答えて

3

項目14.5と14.6は、日々のIBMデータで毎月のインフレデータをマージ使用して実証しますmergeall=Tまたはall=Fは目的に応じて)、na.locfおよびzooseqとし、フルセットの日付を生成する(1つのシンボルまたは他のシンボルがデータを持たない日付をカバーする)。 私はダニがない分のブランク1mバーを作成するために同じ方法を使用しました。だから、毎日とダニのデータをマージするためにもうまくいくと思います。

+0

Darren、ありがとうございます.Nar.locfは、ティックデータと日次データを統合します.n.locfは、ダニデータとマージされたときに日次データのギャップを効果的に埋めます。 –

0

関数apply.rollingの由来はわかりませんが、標準偏差が5の遅れのように見えますか?

まあ、あなたのように見えます。実行の詳細がapply.rollingであるため、calcの最初の5行の値はありません。 Rクックブックで

しかし、私はあなたがここでやろうとしている正確にわからない...ヨシュアに同意するだろう...

+0

apply.rollingを使って適用します上記の(更新された)例では、これらの毎日の指標をダニデータにマージすることができました。 –