如何最好地创建一个函数来执行以下总和

时间:2009-12-22 08:54:21

标签: r

对于数字序列x,如何最好地创建一个计算S(x, r, s)的函数sum(x[t]*x[t+r-s],其中t的范围从slength(x)-r+1r,s > 0

1 个答案:

答案 0 :(得分:3)

您可能希望强制x的长度与s和r的值之间的关系,或者您最终会得到一些奇怪的结果。例如,尝试6:1。

sumfunc <- function(x, s, r) {
   s <- s[s>0]
   r <- r[r>0]
   if(!(length(r)==1 && length(s)==1)) stop("s and r should be numbers > 0")
   t <- s:(length(x)-r+1)
   return(sum(x[t]*x[t+r-s]))
}