SAS EG: исключая набор данных - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь исключить список лиц, которые отображаются в таблицах с именами - clmspull и enroll.Смысл в том, чтобы исключить людей с диабетом, потому что мы ищем тех, кто получил диабет показы .

Я сохранил список как постоянный набор данных под названием "diabexc".Я знаю, что где-то сливаюсь, например:

data excdiab; /*new data set that will exclude the diabetics*/ merge diabexc (IN=a) clmspull (IN=b) enroll (IN=c); by edipn; run;

Я не уверен, что это правильно, я чувствую, что я на правильном пути ....Мы просто хотим, чтобы эти люди были удалены из данных.

Это должно произойти сегодня, поэтому я в бешенстве.Будем благодарны за любую помощь, которую вы можете оказать!Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Вы можете использовать подзапросы в proc sql:

proc sql ;
  create table excdiab as
  select *
  from diabexc
  where epidn ^in(select epidn from clmspull)
    and epidn ^in(select epidn from enroll)
  ;
quit ;
0 голосов
/ 29 мая 2018

как показано ниже, используя if = 1 и b = 0 и c = 0 из вашего кода после оператора слияния.Вы также можете использовать, если а, а не (б или в) вместо этого.это означает записи из первого набора данных, которые не во втором или третьем наборах данных.

data diabexc;
  input edipn ;
 datalines;
 1
 2
 3
 4
 ;
 data clmspull;
 input edipn ;
 datalines;
 3
 5
 ;

data enroll;
input edipn ;
datalines;
2
6
;

data excdiab; /*new data set that will exclude the diabetics*/
 merge diabexc (IN=a) clmspull (IN=b) enroll (IN=c); 
 by edipn; 
if a = 1 and b = 0 and c = 0;
run;
...