【发布时间】:2018-05-12 06:31:59
【问题描述】:
我有以下模型表
#n a b group
1 1 1 1
2 1 2 1
3 2 2 1
4 2 3 1
5 3 4 2
6 3 5 2
7 4 5 2
我正在使用 SAS 来解决这个问题。在列组中,通过 a 和 b 互连的行被分组。我将尝试解释为什么这些行在同一组中
- 第 1 行到第 2 行在第 2 组中,因为它们的 a = 1
- 第 3 行在第 2 组中,因为第 2 行和第 3 行中的 b = 2,第 2 行在第 1 组中
- 第 3 行和第 4 行在第 1 组中,因为两行中 a = 2,第 3 行在第 1 组中
总体逻辑是,如果行 x 包含与行 y 相同的 a 或 b 值,行 x 也属于与 y 所属的同一组。 按照同样的逻辑,第 5,6 和 7 行在第 2 组中。
有没有什么方法可以通过算法找到这些组?
【问题讨论】:
-
如果有另一个观察到 a=4 和 b=2,你想发生什么?这是否意味着只有一个组?还是您只想按 A、B 的顺序处理行,使其位于第 6 行和第 7 行之间并导致有四个组?
-
a和b是否总是在每个连续的行中增加?如果是,那么 Richard 的回答会起作用,但如果不是,那么这是一个更棘手的问题,需要多次遍历您的数据以识别连接的组件。