在时间序列分析中为系数创建for循环矢量

时间:2018-10-28 04:25:34

标签: r time-series moving-average

也许我有两个值,其中m = 5和r = 3。我试图获得一个具有5个值的向量。当j <= r-1时,它必须遵循方程(m-r)(j + 1)。当j> r时,它必须遵循方程r(m-j-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 :(得分:0)

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)