对于数字序列x,如何最好地创建一个计算S(x, r, s)
的函数sum(x[t]*x[t+r-s]
,其中t
的范围从s
到length(x)-r+1
, r,s > 0
。
答案 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]))
}