Условное переупорядочение значений в столбце (перестановка) в R - PullRequest
2 голосов
/ 18 мая 2019

Я работаю над исследовательской работой по манипулированию графиками, и у меня есть следующие данные:

              returns 1+returns  cum_return   price         period_ret(step=25)
    1    7.804919e-03 1.0078049  0.007804919 100.78355           NA
    2    3.560800e-03 1.0035608  0.011393511 101.14306           NA
    3   -1.490719e-03 0.9985093  0.009885807 100.99239           NA
    .   -2.943304e-03 0.9970567  0.006913406 100.69558           NA
    .    1.153007e-03 1.0011530  0.008074385 100.81175           NA
    .   -2.823012e-03 0.9971770  0.005228578 100.52756           NA
   25   -7.110762e-03 0.9928892 -0.001919363  99.81526        -0.02364
    .   -1.807268e-02 0.9819273 -0.019957356  98.02754           NA
    .   -3.300315e-03 0.9966997 -0.023191805  97.70455           NA
   250   5.846750e-03 1.0058467 -0.017480652  98.27748         0.12125

Это 250 ежедневных доходностей акций, совокупный доход, цена и доходность за 25 дней (возвратмежду днями 0-25; 25-50; ...; 200-250).

Я хочу сделать следующее:

Я хочу изменить порядок возвратов, но период должен быть одинаковым, хотя их порядок может измениться.Так что их 10!возможные комбинации подмножеств.

Что я сделал до сих пор: я написал код, используя функции sample, repeat и identical, и вот сокращенная версия:

repeat{
temp <- tibble(
       returns = sample(x$returns, 250, replace=TRUE) )

if(identical(sort(round(c(x$period_ret[(!is.na(x$period_ret))]),2)),sort(round(c(temp$period_ret[(!is.na(temp$period_ret))]),2)))) break
}

Это заняло у меня довольно много временинекоторое время и, к сожалению, это не имеет никакого реального смысла.Только позже я начал думать о математике и о том, что их 250!возможные образцы, поэтому я бы потратил несколько дней на ожидание какого-либо результата.

Зачем мне это нужно?

Я хотел бы создать графики с разными порядками возврата.Таким образом, все графики имеют одинаковую сводную статистику, но выглядят по-разному.Важно, чтобы у них были одинаковые period_returns (независимо от их порядка) для выполнения формулы полезности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...