2015 年の分単位の日中取引データで構成される xts 時系列オブジェクトがあります。1 をイベント日として、または 0 を非イベント日として示すダミー変数を追加したいと考えています。
ダミー変数は本質的に時系列ではないため、これを私の取引データに追加することは可能ですか?
ダミー列はどのように作成すればよいですか?
既存の xts にどのように追加できますか?
R は初めてなので、できるだけ具体的に回答してください。ありがとうございました!
2015 年の分単位の日中取引データで構成される xts 時系列オブジェクトがあります。1 をイベント日として、または 0 を非イベント日として示すダミー変数を追加したいと考えています。
ダミー変数は本質的に時系列ではないため、これを私の取引データに追加することは可能ですか?
ダミー列はどのように作成すればよいですか?
既存の xts にどのように追加できますか?
R は初めてなので、できるだけ具体的に回答してください。ありがとうございました!
xts
に基づいてzoo
おり、動物園の FAQ (質問 4) には、さまざまなデータ型に関する次の行があります。
「動物園」オブジェクトは、(1) 数値ベクトル、(2) 数値行列、または (3) 因子のいずれかですが、数値ベクトルと因子の両方を含むことはできません。
したがって、0 と 1 がnumeric
ではなくfactor
である限り、問題はありません。非常に効率的なストレージ メディアではありませんが、ストレージの効率性がボトルネックになることはありません。
例:
timestamp <- seq.POSIXt(from=as.POSIXct("2016-10-12 09:00"),
to=as.POSIXct("2016-10-13 09:00"),
by="min")
dat <- rnorm(length(timestamp))
foo <- xts(dat,order.by=timestamp)
指標変数は次のようになります。
#make this example reproducible:
set.seed(123)
dummy2 <- sample(c("event","non-event"), size=length(timestamp),
replace=TRUE)
foo2 <- xts(dummy2, order.by=timestamp)
merged <- cbind(foo, foo2)
そして、それはあなたに警告します:
In merge.xts(..., all = all, fill = fill, suffixes = suffixes) :
NAs introduced by coercion
それはそう:
summary(merged)
Index ..1 ..2
Min. :2016-10-12 09:00:00 Min. :-3.38110 Min. : NA
1st Qu.:2016-10-12 15:00:00 1st Qu.:-0.64010 1st Qu.: NA
Median :2016-10-12 21:00:00 Median : 0.04047 Median : NA
Mean :2016-10-12 21:00:00 Mean : 0.03025 Mean :NaN
3rd Qu.:2016-10-13 03:00:00 3rd Qu.: 0.67461 3rd Qu.: NA
Max. :2016-10-13 09:00:00 Max. : 3.25034 Max. : NA
NA's :1441
しかし、それが数値の場合:
dummy3 <- sample(0:1, size=length(timestamp), replace=TRUE)
foo3 <- xts(dummy3, order.by=timestamp)
merged <- cbind(foo, foo3)
静かに戻ってきます(ニュースがないのは良いニュースです)。みてみましょう:
summary(merged)
Index ..1 ..2
Min. :2016-10-12 09:00:00 Min. :-3.38110 Min. :0.0000
1st Qu.:2016-10-12 15:00:00 1st Qu.:-0.64010 1st Qu.:0.0000
Median :2016-10-12 21:00:00 Median : 0.04047 Median :0.0000
Mean :2016-10-12 21:00:00 Mean : 0.03025 Mean :0.4983
3rd Qu.:2016-10-13 03:00:00 3rd Qu.: 0.67461 3rd Qu.:1.0000
Max. :2016-10-13 09:00:00 Max. : 3.25034 Max. :1.0000
列 2 は数値であるため、等式を使用して比較しません。それが直感的でない場合は、R Infernoの Circle One (注意: PDF) を確認してください。
summary(merged[merged[,2] > 0.5 ,1] )
summary(merged[merged[,2] < 0.5 ,1] )
もっとエレガントな方法があるかもしれませんが、それで始められます。
xts
自明以上の作業を計画している場合は、次の著者からのアドバイスをお勧めしxts
ます。
xts オブジェクトの中心には、同名のパッケージの Zoo オブジェクトがあります。... Zoo オブジェクトを取り巻く詳細のほとんどは、xts にも同様に適用されます。優れた入門的な動物園のビネットを単にもう一度説明するのは冗長であるため、読者はこのクラスの能力を最もよく理解するために、そのドキュメントを読み、吸収し、再読することをお勧めします.