使用组合功能投影列表

时间:2014-05-16 04:02:50

标签: r

说我有5分的这个向量:

> x <- c(2,4,6,8,10)

我想计算一个包含x

中元素中点的4元素向量
> 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,我很难找到一种方法。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

嗯,特别是中点我可能会做

diff(x)/2 + x[-length(x)]

但对于更一般的情况,例如

apply(embed(x,2), 1, mean)

会很有用。 embed(,2)函数将重塑您的数据,使得成对元素将在矩阵中各自拥有自己的行。然后你可以使用apply函数为每行中的每个对运行你喜欢的任何函数。