下面是我的问题的简化版本,比我的原始版本更容易解释。假设我定义为用户自定义函数的用法
total
[[1]]
[1] 0.2 0.6 0.8 0.3 0.9
[[2]]
[1] 0.2 0.6 0.8 0.3 0.9 0.2 0.8 0.3 0.9 0.2 0.6 0.3 0.9
[[3]]
[1] 0.2 0.6 0.8 0.3 0.9 0.2 0.8 0.3 0.9 0.2 0.6 0.3 0.9
现在的参数
par<-c(0.2,0.5,0.7,0.3,0.9,1,1.2,1.8,1.5)
一个载体,一个叫total
列表,可以说,我想给函数mean
适用于3个元素中的每一个并且每次将结果乘以从par
中选择的两个参数的函数。但是,要选择的参数随着每次迭代sapply
而改变。例如,当我计算列表第一个元素的平均值时,我想将结果乘以sqrt(par[2]*par[3])
,而在计算list
中第二个元素的平均值时,我想将结果乘以sqrt(par[5]*par[6])
等等。
我知道我可以做
sapply(total, mean)
使用sapply
获得每个元素的平均中total
但我怎么告诉sapply
做rolling
乘法结果?我应该使用rapply
吗?
您不需要那个笨手笨脚的/无名的电话。只是'sapply(总的,卑鄙的)'。这不是真正的“滚动”应用程序。你可能应该将'par'对象改成列表并使用'mapply'。 – 2014-10-06 18:47:48
好点,让我改正! – 2014-10-06 18:48:54
遍历你的par向量的规则是什么? – agstudy 2014-10-06 19:05:55