케이스 또는 레코드에 정보가 누락되어 있는지 확인하기 위해 sas에서 proc sql
를 사용하고 싶습니다. 나는 두 개의 데이터 세트를 가지고있다. 하나는 방문 중 수집 된 양식을 보여주는 전체 데이터 수집 기록입니다. 두 번째는 이 방문하는 동안 어떤 형태로을 수집해야하는지에 대한 명세입니다. 나는sas에서 proc sql을 사용하여 누락 된 사례를 찾는 방법은 무엇입니까?
예 데이터는 아래
***** dataset crf is a listing of all forms that have been filled out at each visit ;
***** cid is an identifier for a study center ;
***** pid is an identifier for a participant ;
data crf;
input visit cid pid form ;
cards;
1 10 101 10
1 10 101 11
1 10 101 12
1 10 102 10
1 10 102 11
2 10 101 11
2 10 101 13
2 10 102 11
2 10 102 12
2 10 102 13
;
run;
***** dataset crfrule is a listing of all forms that should be filled out at each visit ;
***** so, visit 1 needs to have forms 10, 11, and 12 filled out ;
***** likewise, visit 2 needs to have forms 11 - 14 filled out ;
data crfrule;
input visit form ;
cards;
1 10
1 11
1 12
2 11
2 12
2 13
2 14
;
run;
***** We can see from the two tables that participant 101 has a complete set of records for visit 1 ;
***** However, participant 102 is missing form 12 for visit 1 ;
***** For visit 2, 101 is missing forms 12 and 14, whereas 102 is missing form 14 ;
***** I want to be able to know which forms were **NOT** filled out by each person at each visit (i.e., which forms are missing for each visit) ;
***** extracting unique cases from crf ;
proc sql;
create table visit_rec as
select distinct cid, pid, visit
from crf;
quit;
***** building the list of expected forms by visit number ;
proc sql;
create table expected as
select x.*,
y.*
from visit_rec as x right join crfrule as y
on x.visit = y.visit
order by visit, cid, pid, form;
quit;
***** so now I have a list of which forms that **SHOULD** have been filled out by each person ;
***** now, I just need to know if they were filled out or not... ;
내가 expected
을 병합하는 노력 해왔다 전략입니다 ... 데이터 단계와 아무 소용 not in
를 사용하여 SQL 코드를 포함하여 많은 옵션을 시도 각 방문에 대해 누락 된 양식의 일부 표시등을 사용하여 crf
테이블로 다시 이동하십시오. , 모든지도가 대단히 감사합니다
CID, PID, missing_form를 방문하십시오
최적, 내가 가진 것 테이블을 생성하고 싶습니다.
나는 [이 답변] (http://stackoverflow.com/questions/8946593/how-can-i-use-proc-sql-to-find-all-the-records의 여러 버전을 시도했다 - 유일한 - - 하나 - 테이블 -하지만 - 지금까지 내 시도에). –
이들은 모두 훌륭한 해답입니다. –