说我有5分的这个向量:
> x <- c(2,4,6,8,10)
我想计算一个包含x
> xmid <- numeric()
> for (i in 1:(length(x)-1)) {xmid[i] <- (x[i] + x[i+1])/2}
但更一般地说,我只是希望能够通过应用组合函数n
将列表/向量/表格/带有n-1
元素的任何元素投影到具有combineFunc
元素的元素中ith
和(i+1)th
元素:
> xmid <- some_cool_combining_function(x, combineFunc)
如果没有for-loop,我很难找到一种方法。有什么建议吗?
答案 0 :(得分:2)
嗯,特别是中点我可能会做
diff(x)/2 + x[-length(x)]
但对于更一般的情况,例如
apply(embed(x,2), 1, mean)
会很有用。 embed(,2)
函数将重塑您的数据,使得成对元素将在矩阵中各自拥有自己的行。然后你可以使用apply
函数为每行中的每个对运行你喜欢的任何函数。