我将一组不连续的数据分成块,如下所示:
X1 X2 X3
1 10.1 1
2 10.2 1
3 10.3 1
4 10.4 1
5 NA 0
6 NA 0
7 20.1 1
8 20.2 1
9 NA 0
10 NA 0
基本上我需要在第一个块(10.1,10.2,10.3,10.4)中对标志X3 = 1的所有数据进行平均,而在第二个块(20.1,20.2)中进行平均,依此类推。滚动平均值不起作用,因为块的大小略有不同(在这种情况下,第一个是4个点,第二个只有2个)。 我无法弄清楚使用该标志的简单方法,而无需一次解析整行矩阵。有什么建议吗?
答案 0 :(得分:3)
我们可以使用data.table
。将'data.frame'转换为'data.table'(setDT(df1)
,将rleid
分组为'X3',获取'{1}}'X2'并删除{{1}输出中的元素mean
。
NA