Предположим, у меня есть набор данных, который выглядит следующим образом:
obs id1 id2
1 a 1
2 b 2
3 c 2
4 d 3
5 e 4
6 b 5
7 f 6
Я хочу создать уникальную транзитивную id
переменную для этого набора данных.И id1
, и id2
используются для идентификации лиц.Так что, если у индивидуума X
есть то же id1
, что и у индивидуума Y
или , то же самое id2
, что и у индивидуума Y
, тогда X=Y
.
Итак, в этомНапример, предполагаемый результат будет выглядеть следующим образом:
obs id1 id2 uniqid
1 a 1 1
2 b 2 2
3 c 2 2
4 d 3 3
5 e 4 4
6 b 5 2
7 f 6 5
Здесь наблюдение 6
имеет id1
"b", которому уже присвоен uniqid 2
(по наблюдению 2
), иИтак, наблюдение 6
идентифицирует того же человека, что и наблюдение 2
.
Теперь, сравнивая наблюдения 3
и 6
, мы видим, что эти наблюдения не разделяют ни id1
, ни id2
, но все же идентифицируют одного и того же человека, поскольку оба они идентифицируют одного и того же человека как наблюдение 2
.
В настоящее время я работаю в Stata, и мне было интересно, как лучше всего это сделать.Я бы предпочел решение на основе Stata, но мне также было бы интересно посмотреть на решения R или Python.