我有一个分组的数据集,我想检查以确保这些组不能进一步划分为不同的子组 . 组中的每个观察都有一个唯一的 ID
和另一个名为 match_ID
的变量,对于一个两个成员的组,它是该组中另一个观察的ID号 . 对于具有两个以上成员的组,每个匹配重复一次ID,因此三个成员组将列出所有三个ID两次:每次匹配一次 .
两人组的示例:
ID match_ID group_ID
1 2 55
2 1 55
三人小组的例子:
ID match_ID group_ID
1 2 99
1 3 99
2 1 99
2 3 99
3 1 99
3 2 99
我的计划是在每个组中取第一个 ID
并确保它显示为该组所有其他成员的 match_id
值 . 如果没有,则该组包含一个不同的子组 . 但这只适用于两个成员组(无论如何都不能包含子组),所以我认为需要有一个条件,即对于组内每个唯一的 ID
, ID
与 match_ID
进行核对 . 但我不知道如何编码 .
1 回答
你的
xtset
代码对我不起作用 - 也许我错过了什么 . 无论如何,这里有一个(相当难看的)代码,它计算每个组中ID
和match_ID
的每个组合的匹配数,并在计数不是一个时报告结果 .这样做的工作,但肯定有办法改进这个代码 - 我不得不求助于
preserve
和restore
因为我无法使索引工作 . 我还想象使用xtset
或reshape
可能会更快,因为Stata中的行方式操作很慢 .