Таблица заказа A основана на ранге таблицы B в R - PullRequest
2 голосов
/ 11 мая 2011

довольно новый вопрос здесь, но я не смог отыскать решение в течение некоторого времени:

У меня есть объект торговых индикаторов 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))

, который дает таблицу ( указывает.ранк ) имен символов, ранжированных по их торговому индикатору:

               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

1 Ответ

1 голос
/ 11 мая 2011

Я не особенно удовлетворен этим решением, но оно работает.

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,]]
}

Вероятно, было бы легче справиться с этим, если бы возврат и индикаторы для каждого символа были в одном и том же объекте, ноЯ не знаю, как это будет соответствовать остальной части вашего рабочего процесса.

...