助けを借りてありがとう:なぜRで定数xtsオブジェクトを分割すると、行列オブジェクトが失われます(Date列が失われます)?
なぜRで定数xtsオブジェクトを分割すると、行列オブジェクトになります(日付/インデックス列が失われます)? 結果のオブジェクトは、入力xtsのようなxtsオブジェクトで、列の値を定数で除算したものになります。なぜこれが起こり、それを避けるのですか?
私が観察した問題の例。
コードエキス:
TradeProfit <- as.xts(ifelse(is.na(lag(GLD$Signal, 1)) == 0 & GLD$Signal != lag(GLD$Signal, 1), GLD$TotTradCapital, NA))
TradeProfit <- na.omit(TradeProfit)
TradeProfitPerc <- ifelse(is.na(lag(TradeProfit,1)) == 0, TradeProfit/100, NA)
TradeProfitPerc <- na.omit(TradeProfitPerc)
> class(TradeProfit)
[1] "xts" "zoo"
> head(TradeProfit)
Signal
2012-08-15 0.000000
2012-11-02 6.970001
2012-11-06 6.970001
2013-08-09 46.410003
2013-08-14 46.410003
2013-09-27 46.380004
head(TradeProfitPerc)
Signal
[1,] 0.06970001
[2,] 0.06970001
[3,] 0.46410003
[4,] 0.46410003
[5,] 0.46380004
[6,] 0.46380004
> class(TradeProfitPerc)
[1] "matrix"
>
問題はTradeProfitPercは私が保持したい日付コラム/インデックスを失っていることです。また、TradeProfitはxtsオブジェクトなので、なぜディビジョンがxtsを行列オブジェクトに変換するような奇妙な振る舞いを引き起こすのでしょうか?どのようにしてxtsプロパティを保持できますか? ありがとう!
Joshua Ulrichに感謝します。私のコードが機能していない理由と解説の両方を提供する詳細な答えです。 –
あなたの答えを再度読んでください、なぜあなたはまた、変数TradeProfitの場合、is.na()呼び出しによってインデックス/日付列が削除されないのか説明できますか? –
@FilippoNeri:done。ありがとうございます。 –