所以我的数据如下:
id expressions mode
1 22 0
2 24 0
3 23 0
4 5 1
5 56 1
6 42 1
7 32 0
8 21 0
9 11 1
10 72 1
所以我会根据上一个问题得到一张新表:
id max mean min mode
1 24 23 22 0
2 56 51 5 1
3 32 26 21 0
4 72 41 11 1
所以基本上是滚动应用函数和变量窗口,它在切换发生时考虑一个窗口,在输出中,我已经显示了。
答案 0 :(得分:0)
我们可以使用data.table
根据'mode'的run-length-id进行操作分组,并获取'{1}}'表达式'
max/mean/min/mode
或library(data.table)
setDT(df1)[, .(Max = max(expressions), Mean = round(mean(expressions)),
Min = min(expressions)), .(id = rleid(mode), mode)]
# id mode Max Mean Min
#1: 1 0 24 23 22
#2: 2 1 56 34 5
#3: 3 0 32 26 21
#4: 4 1 72 42 11
tidyverse