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

R 如何最好地创建一个函数来执行以下求和,r,R,对于一个数字序列x,如何最好地创建一个函数S(x,r,S),该函数计算和(x[t]*x[t+r-S],其中t的范围从S到长度(x)-r+1和r,s>0您可能希望在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)) s

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

您可能希望在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]))
}

sumfunc在实践中学习并提出有助于提高成绩的问题的嗜好肯定没有什么错。唯一的优势是在教学中学习。@LarryWatanabe很好。谢谢,Shane。如果不是看大师们在做什么,我怎么知道什么是最好的呢。