如何找到变量内值的最大距离

How to find maximum distance apart of values within a variable

我创建了一个工作示例数据集:

input ///
group value
1    3
1    2
1    3 
2    4
2    6
2    7 
3    4
3    4 
3    4
3    4
4    17
4    2
5    3
5    5
5    12
end

我的目标是找出 group 内增量 value 秒之间的最大距离。对于 group 2,这将是 2,因为 4 之后的下一个最高值是 6。请注意,与 4 相关的唯一 value6,而不是 7,因为 7 不是 4 之后的下一个最高值。组 3 的结果是 0,因为组 3 中只有一个值。每个 group.

只有一个结果

我想得到的:

input ///
group value result
1    3    1
1    2    1
1    3    1
2    4    2
2    6    2
2    7    2
3    4    0
3    4    0
3    4    0
3    4    0
4    17   15
4    2    15
5    3    7
5    5    7
5    12   7
end

顺序并不重要,所以上面的顺序可以更改。

有什么建议吗?

我可能已经想通了:

bys group (value): gen d = value[_n+1] - value[_n]
bys group: egen result = max(d)
drop d