Возьмите приведенный ниже пример кода, содержащий человека и его сеанс:
data test;
length pers session $5;
input pers $ session $;
datalines;
a 1
a 2
a 7
b 2
b 3
c 3
d 4
e 5
h 2
;
run;
Первые 6 записей и последняя запись должны иметь один и тот же уникальный идентификатор, потому что лица A, B и H связаны сессией 2,и Человек B (который связан с Человеком A) связан с Человеком C сессией 3.
, т.е. все 7 записей имеют связь через человека и / или сеанс.Если вы рассматриваете человека как «родителя», а сеанс - как «ребенка» в структуре узла, все связанные дети и родители должны быть в одном и том же UID.Любые перерывы должны быть отдельными UID.
Строки 7 и 8 (Лица D и E) будут иметь свои собственные уникальные идентификаторы, поскольку они не имеют перекрывающихся лиц или сеансов.Результат будет выглядеть примерно так:
Person|Session|Unique_ID
a 1 UID1
a 2 UID1
a 7 UID1
b 2 UID1
b 3 UID1
c 3 UID1
h 2 UID1
d 4 UID2
e 5 UID3
Я пробовал транспонировать и многократные сохранения, но он становится хитрым, построчно, поскольку кажется, что вам нужно сохранить частичные совпадения, но затем вернуться к группировкам, еслиЕсть полные совпадения.Я мог бы обдумать это, но это кажется довольно сложным.
У кого-нибудь есть мысли о том, как мне этого добиться?