Применить функцию двух элементов - PullRequest
0 голосов
/ 26 ноября 2018

Допустим, у меня есть вектор x_n размера n, и я хочу применить функцию к каждому элементу, кроме первого, который зависит от предыдущего элемента f (x_i, x_ (i-1)), какэто можно сделать без зацикливания?

1 Ответ

0 голосов
/ 26 ноября 2018

А как насчет этого?Но, как заметил @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
...