数据表聚合操作中的第一个元素

4

我有一个tick数据的data.table,想要将其聚合成秒级时间框架。获取maxminlast相当简单:

data[, list(max(value), min(value), last(value)), by=time]

我在努力获取对应于某个秒级时间戳的第一个数据点。手册中没有相关内容。是否有一种像SQL TOP那样简单的方法来解决这个问题?


first(value) is equivalent to value[1] and last(value) to value[.N] - Uwe
2个回答

6
我找到了解决方案。获取第一个元素的查询只需要使用[来提取该列的第一个值。
data[, list(value[1], max(value), min(value), last(value)),by=time]

也许这能帮助某些人。

3

看起来first是一个有效的聚合函数。

foo <- data.table(x=1:10, y=11:20)
     x  y
 1:  1 11
 2:  2 12
 3:  3 13
 4:  4 14
 5:  5 15
 6:  6 16
 7:  7 17
 8:  8 18
 9:  9 19
10: 10 20

foo[, .(first(x), last(x))]

    V1 V2
1:  1 10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接