也许我有两个值,其中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
非常感谢您的帮助!
答案 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)