首页 > 解决方案 > 应用两个元素的函数

问题描述

假设我有一个x_n大小为 n 的向量,我想对除第一个元素之外的每个元素应用一个函数,这取决于前一个元素 f(x_i, x_(i-1)),如何在不循环的情况下完成?

标签: rloopsapply

解决方案


那这个呢?但正如@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

推荐阅读