在r中应用索引函数

时间:2015-03-03 10:33:00

标签: r indexing apply subset

我有一个向量V<-1:10

我想多次选择V的三个元素。 例如 我将第一次选择第一个三元素a[1:3], 第二次,我想选择a[2:4], 第三次a[7:9] 输出将是
[1,] 2 3 8
[2,] 3 4 9
[3,] 4 5 10

要做的任何技巧都要快,如果我多次重复这个子设置过程,它真的很慢。或者如何使用apply函数族来解决这些问题。我目前的解决方案是 Index <- function(id, DM) DM[id] Metrix <- apply(b,2,Index, a)
其中b如下:
[1,] 1 2 7
[2,] 2 3 8
[3,] 3 4 9

有人可以使用内置函数而不是我自己的索引函数。

1 个答案:

答案 0 :(得分:1)

您可以使用rollapply包中的zoo

zoo::rollapply(a, 3, FUN=identity)

当然,如果要使用这些值来计算特定的内容,可以指定不同的函数。

zoo::rollapply(a, 3, FUN=paste0, collapse='.')
zoo::rollapply(a, 3, FUN=function(x) x[3] - x[2] - x[1])