假设我有一个大小为n的向量x_n
,并且我想对除第一个元素以外的每个元素应用一个函数,该函数取决于先前的元素f(x_i,x_(i-1)) ,如何做到不循环?
答案 0 :(得分:0)
那呢?但正如@RLave *apply
所指出的那样,这只是一个变相的循环:
my_fun<- function(i, x) {
if(i == 1){
return(x[i])
} else {
return(x[i] + x[i-1])
}
}
x_n<- c(10, 20, 30, 40 ,50)
sapply(1:length(x_n), my_fun, x_n)
[1] 10 30 50 70 90