Соответствующие наблюдения в той же таблице - PullRequest
0 голосов
/ 25 апреля 2018

Мне было интересно, может ли SAS сопоставить наблюдения в одной и той же таблице на основе нескольких условий сопоставления, а затем пометить их.Например, я хочу наблюдения, которые совпадают по возрасту и полу, но различаются только в зависимости от того, нравятся ли им звездные войны или нет.

У меня есть данные

   age  gender  Like star wars  Location
    34  male         1            US
    36  female       0            UK
    24  female       1            AU
    45  female       1            US
    34  male         0            CH
    36  female       1            US
    57  female       0            US

Хочу

>    age    gender  Like star wars  Location    Match
>     34    male         1            US         Yes
>     36    female       0            UK         Yes
>     24    female       1            AU         No
>     45    female       1            US         No
>     34    male         0            CH         Yes
>     36    female       1            US         Yes
>     57    female       0            US         No

1 Ответ

0 голосов
/ 25 апреля 2018

Если вы отсортируете данные по возрасту и полу, то «совпадения» будут сгруппированы вместе. Несоответствия могут быть легко обнаружены с обработкой first. и last.. Строки, которые first. и last. не совпадают.

proc sort data=have;
by age gender;

data want;
set have;
by age gender;
match = ifc(first.age and last.age, 'No', 'Yes');
run;

enter image description here

...