Запуск нескольких массивов в SAS - PullRequest
0 голосов
/ 19 марта 2020

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

    data Outc_adjust3; set Outc_adjust2;

    ARRAY outcvars{3} CABG MI CREVASC;

    ARRAY outcdys{3} CABGDY MIDY CREVASCDY;

    ARRAY outc_age{3} CABG_age MI_age CREVASC_age;

    Do I= 1 to 3;

        if outcvars{3} = 1 then outc_age{3} = ageatenroll + (outcdys(3)/365.25);

        else if outcvars{3} = 0 then do; 

           if EXTFLAG = 0 AND EXT2FLAG = 0 then outc_age{3} = AGE_WHIENDFU;

           if EXTFLAG = 1 AND EXT2FLAG = 0 then outc_age{3} = AGE_EXT1ENDFU;

           if EXT2FLAG = 1 AND EXT2MRC = 1 then outc_age{3} = age_endfu;

           if EXT2FLAG = 1 AND EXT2SRC = 1 then outc_age{3} = age_ext1endfu;

        end;
    end;

    run;

1 Ответ

0 голосов
/ 19 марта 2020

Вы жестко запрограммированы {3}, когда вам нужно {I}. Вот почему обрабатывается только третья переменная массива.

Измените {3} на {I} для всех ссылок на индексированные массивы внутри l oop.

...