如何不使用if else在R中迭代赋值给向量

时间:2014-03-12 20:34:15

标签: r

假设我有一个向量定义a = rep(NA,10); 我想给每个迭代的第i个元素赋值。

for(i in 1:10){
indexUsed[i] = largestGradient(X, y, indexUsed[is.na(indexUsed)], score)
}

如你所见,我想使用index [1:(i-1)]来计算第i个元素,但对于第一个元素,我想要一个NULL或者其他什么特殊值,让我的函数知道它是空的(然后它将处理这种情况,以便为第一个元素赋值,这与下一步不同)。

我不知道我的写作是一种很好的方式,通常你是怎么做的?

1 个答案:

答案 0 :(得分:0)

我没有比使用for循环更好的方法,但我很乐意看到其他人的回复。但是,在我看来,您的代码应该是

  indexUsed[i] <- largestGradient(X, y, indexUsed[!is.na(indexUsed)], score)

对于i=1,您的indexUsed[!is.na(indexUsed)]将为空,并且应该是您在函数中的基础案例。对于每个其他迭代,它将检索元素1i-1