2

ここではかなり新しい質問ですが、しばらくの間、解決策を突き止めることができませんでした:

次のような株式データのトレーディング指標 (示す) の XTS オブジェクトがあります。

               A           XOM          MSFT
2000-11-30   -0.59        0.22          0.10
2000-12-29    0.55       -0.23          0.05
2001-01-30   -0.52        0.09         -0.10

そして、対応する期間の同一のインデックスを持つテーブルは、次のように返されます ( return )

               A           XOM          MSFT
2000-11-30   -0.15        0.10          0.03
2000-12-29    0.03       -0.05          0.02
2001-01-30   -0.04        0.02         -0.05

インジケーター テーブルを並べ替えて、次のコードで列名を返すようにしました。

indicate.label <- colnames(indicate)
indicate.rank <- t(apply(indicate, 1, function(x) indicate.label[order(-x)]))    
indicate.rank <- xts(indicate.rank, order.by = index(returns))

これは、取引指標によってランク付けされたシンボル名のテーブル ( indicator.rank ) を提供します。

               1            2            3
2000-11-30    XOM         MSFT           A
2000-12-29     A          MSFT          XOM
2001-01-30    XOM          A            MSFT

インジケーターのランクに基づいて期間のリターンを示すテーブルも必要です。

2000-11-30    0.10         0.03         -0.15
2000-12-29    0.03         0.02         -0.05
2001-01-30    0.02        -0.04         -0.05

すべての行に対して正しいシンボルを呼び出す方法や、の順序に基づいてテーブルの戻り値並べ替える方法を理解できません。

ご提案ありがとうございます。

トレバー・J

4

1 に答える 1

1

私はこのソリューションに特に満足しているわけではありませんが、うまくいきます。

row.rank <- t(apply(indicate, 1, order, decreasing=TRUE))
indicate.rank <- return.rank <- indicate  # pre-allocate
for(i in 1:NROW(indicate.rank)) {
  indicate.rank[i,] <- colnames(indicate)[row.rank[i,]]
  return.rank[i,] <- return[i,row.rank[i,]]
}

各シンボルのリターンとインジケーターが同じオブジェクトにあれば、おそらくこれを処理する方が簡単でしょうが、それがワークフローの残りの部分にどのように適合するかはわかりません.

于 2011-05-11T01:47:06.553 に答える