【发布时间】:2011-09-14 17:58:23
【问题描述】:
我正在寻找一种很好且快速的方法来将一些对向量进行操作的任意函数(例如 sum)连续应用于连续 K 个元素的子向量。
这是一个简单的例子,它应该非常清楚地说明我想要什么:
v <- c(1, 2, 3, 4, 5, 6, 7, 8)
v2 <- myapply(v, sum, group_size=3) # v2 should be equal to c(6, 15, 15)
该函数应尝试处理给定向量的group_size 元素组,并将函数应用于每个组(将其视为另一个向量)。在这个例子中,向量v2得到如下: (1 + 2 + 3) = 6, (4 + 5 + 6) = 15, (7 + 8) = 15。在这种情况下,K 没有准确地划分 N,所以最后一组的大小小于 K。
如果有更好/更快的解决方案仅在 N 是 K 的倍数时才有效,我也将不胜感激。
【问题讨论】:
-
提示 - 您可以先创建分组变量,然后使用任何一个应用/聚合函数按组计算统计信息。