Условно выберите набор данных в шаге данных SAS - PullRequest
0 голосов
/ 27 августа 2018

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

%MACRO M;
%DO %UNTIL (ICU_LAST=FALSE);
    /* REMOVE ANY "LAST" RECORDS THAT ARE IN ICU AS THEY WILL NOT HAVE A LLOC ASSOCIATED WITH THEM */
    DATA LAST_TEST1;
        FALSE = 0;
        TRUE = 1;
        FORMAT SEEN 8.;
        RETAIN SEEN;
        RETAIN RECNO;
        IF SEEN=. THEN SEEN = FALSE;
        IF SEEN = FALSE THEN 
        DO;
            SET TESTTABLE_ENUMERATE END = LAST;
            SEEN = TRUE;
        END;
        ELSE
            SET RM_LAST_ICU END = LAST;
        IF LAST THEN
            ENDRECNO = 'LAST';
    RUN;

    /* IF THE LAST RECORD FOR EACH ACCOUNT IS AN ICU UNIT THEN DELETE IT AS THERE WILL BE NO ORDER OR ADMIT DATES ASSOCIATED WITH IT */
    DATA RM_LAST_ICU;
    FORMAT ICU_LAST 8.;
    IF ICU_LAST = . THEN ICU_LAST = FALSE;
    SET LAST_TEST1;
    IF LOCATIONNURSEUNITCODEDESC IN (&ICU_LIST.) AND ENDRECNO = 'LAST' THEN 
        DO;
            DELETE;
            ICU_LAST = TRUE;
        END;
    ELSE
        ICU_LAST = FALSE;
    RUN;

%END;
%MEND;
%M;
...