如何按间隔大小把相邻数据分组

现有excel文件data.xlsx,部分内容如下:

dt

val

2000/1/1 0:04

2339

2000/1/1 0:08

8724

2000/1/1 0:33

8712

2000/1/1 0:49

8748

2000/1/1 0:52

3795

2000/1/1 0:58

8089

2000/1/1 1:02

1205

2000/1/1 1:07

2326

2000/1/1 1:32

9059

 dt列是时间,val列是数值。每当时间间隔超过 10 分钟,则新分一组,计算各组内val的平均值,部分结果如下:

dt

avg

2000/1/1 0:04

5531.5

2000/1/1 0:33

8712

2000/1/1 0:49

6877.33

2000/1/1 1:02

1765.5

2000/1/1 1:32

4733.25

借助集算器可以很方便地完成

1.     在集算器中编写脚本avg.dfx


A

B

1

=file("data.xlsx").xlsimport@t()

/读取Excel文件内容

2

>st=A1(1).dt

/设起始时间为st,初始值是第一个dt

3

=A1.group@i(if(interval@s(st,dt)>600,st=dt,false))

/分组,若当前的时间与起始时间间隔超过10分钟,则新分一组

4

=A3.new(dt:dt,round(~.avg(val),2):avg)

/计算每个分组内的val均值,dt为每组的第一个时间

2.     行脚本,A4是需要计算出的结果