Создание вектора цикла для коэффициента в анализе временных рядов - PullRequest
0 голосов
/ 28 октября 2018

Возможно, у меня есть два значения, где m = 5 и r = 3.Я пытаюсь получить вектор, который имеет 5 значений.Когда j <= r-1, оно должно следовать уравнению (mr) (j + 1).Когда j> r, оно должно следовать уравнению r (mj-1).

Я написал следующий код:

    returns = function(m,r){
    vector = numeric(m)
    for(j in 0:m-2){
        if(j <= (r-1)){
          vector[j] = (m-r)*(j+1)
        }
        if(j >= r){
          vector[j] = r*(m-j-1)}}
        print(vector)
        j=j+1}

Результат, который я хотел бы получить:

    2,4,6,3,0

Что я получу взамен:

    4,6,3,0,0

Буду очень признателен за любую помощь!

1 Ответ

0 голосов
/ 28 октября 2018

1) Индекс для j должен начинаться с 1, потому что в R все векторы основаны на 1, а не на 0.

2) Правила дают в терминах j - поэтому скорректированы правила для учетаj на основе 1

returns = function(m,r){
  vector = numeric(m)
  for(j in 1:m-1){
    if(j < r){
      vector[j] = (m-r)*(j)
      }
    if(j >= r){
      vector[j] = r*(m-j-1)
      }
    }
  print(vector)
  }

returns(5,3)
...