根据R中表B的等级对表A进行排序

| 这里是一个很新的问题,但是一段时间以来我一直无法找到解决方案: 我有一个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
在相应期间内具有相同索引的表的返回(返回)如下
               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))
这给出了按交易指标排名的交易品种名称表(indicate.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
我无法弄清楚如何为所有行调用正确的符号,或者仅根据指示顺序对表返回进行排序。 感谢您的任何建议。 特雷弗     
已邀请:
我对该解决方案并不特别满意,但是它可以工作。
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,]]
}
如果每个符号的收益和指标位于同一个对象中,可能会更容易处理此问题,但是我不知道这将如何适合您的其余工作流程。     

要回复问题请先登录注册