Iはcovariance
関数の出力はconvert.to.vec
であるか異なるであろう異なる結果は、オブジェクト
prices <- c(11.44, 12.64, 13.12, 11.98, 19.34)
dates <- seq(as.Date("2011-07-01"), by=1, len=length(prices))
ts.prices <- xts(prices, order.by =dates)
covariance <- function(x, convert.to.vec=FALSE) {
if (convert.to.vec == TRUE)
x <- as.vector(x)
xbar <- mean(x)
N <- length(x)
i <- 1
covariance <- sum((x[1:(N-i)]-xbar)*(x[(1+i):N]-xbar))
return(covariance)
}
次の元のコードを有するTRUE
またはFALSE
:
> covariance(ts.prices, TRUE)
[1] -5.679376
> covariance(ts.prices, FALSE)
[1] 4.445328
いくつかの変数を追加した後、print
をデバッグするコードを簡単に作成した後:
FALSE
ある場合、それは3つの浮動番号が含まれ、一方
> covariance(ts.prices, TRUE)
[1] -2.264 -1.064 -0.584 -1.724
[1] -1.064 -0.584 -1.724 5.636
[1] 2.408896 0.621376 1.006816 -9.716464
[1] -5.679376
> covariance(ts.prices, FALSE)
[,1]
2011-07-01 -2.264
2011-07-02 -1.064
2011-07-03 -0.584
2011-07-04 -1.724
[,1]
2011-07-02 -1.064
2011-07-03 -0.584
2011-07-04 -1.724
2011-07-05 5.636
e1
2011-07-02 1.132096
2011-07-03 0.341056
2011-07-04 2.972176
[1] 4.445328
convert.to.vec
がTRUE
ある、term.3
は、4つの浮動番号が含ま:
我々はterm.3
の値が異なるものであることがわかります。だから、私は、異なる値が2つのxtsオブジェクトの乗算と2つのvector'ed xtsオブジェクトによって引き起こされると仮定しています。これはなぜですか?そのインデックスが同一でない場合は、私たちが見ることができるような+
や*
などOps.xts
関数は、2つのxts
オブジェクトに使用される@ alexis_lazさんのコメントに基づいて
DC
私は[ジョシュアの答えはこちら](http://stackoverflow.com/a/10516245/2414948)が適切であると信じています。 'Ops.xts'は、算術演算が行われる前に重複している" index "を考慮に入れるために' merge.xts'を使うようです。 –
@alexis_lazリンクをありがとう。私はそれを受け入れることができるように答えとして投稿できますか? – DivineComedy
私は 'xts'のドキュメントを十分に理解していないので、正式な答えをどのように構成するのか分かりません。リンクされたQAが十分であれば、重複としてマークされる可能性があります –