sas поиск значения по столбцу с массивом и извлечение значений из следующих 12 столбцов - PullRequest
0 голосов
/ 14 апреля 2019

Я хочу посчитать количество «неотлеченных» вхождений в разных столбцах с некоторым условием в разные даты позиции. Как мне искать вхождения 12 '1 по столбцам.

[ОБНОВЛЕНО] Я изменил свой набор данных и считаю, что это лучший способ получить желаемые результаты.

Это образец моих необработанных данных

    data have;
    input acct flg1 flg2 flg3 flg4 flg5 flg6 flg7 flg8 flg9 flg10 flg11 flg12 flg13 flg14 flg15 flg16 flg17 flg18 flg19 flg20 flg21 flg22 flg23 flg24 flg25;
    datalines;
    AA 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 
    run;

Числа на flg представляют месяцы - например, flg1 = jan10, flg2 = feb10 и так далее. Чтобы получить неизлечимую, необходимо выполнить определенные условия.

  1. flg (i) должно быть 0
  2. не вылечить происходит, только если в будущем будет как минимум 12 последовательных флагов '1'
  3. В учетной записи может быть более 1 инцидента без лечения

Расчет не отверждения должен выглядеть следующим образом (см. Изображение для лучшего обзора - выделено зеленым) Computation

AA 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

  • noncure1 равно 1, потому что flg1 равно 0, а следующие 12 1 равны flg9
  • noncure2 равно 1, потому что flg2 равно 0, а следующие 12 1 равны flg9
  • noncure4 равно 0, потому что flg4 не равно 0
  • noncure23 равно 0, потому что даже если flg23 равно 0, нет следующих последовательных 12 в flg25 (только один отсчет '1')

У меня проблемы с поиском моего первого экземпляра последовательных 12 '1' в flg (i). Я думал о создании массива, чтобы заполнить позицию последовательных 12 (например, nc_pos), а затем сделать i для nc_pos - что-то вроде

nc_pos =  <search for 12 consecutive occurrence of '1' from flg(i)> **I don't know the code for this**
if flg(i) = 0 then do i to nc_pos;
noncure_tag = 1;
obs_pos = i;

К вашему сведению, у меня есть несколько сотен тысяч счетов на общую сумму 84 месяца, и их стартовые позиции отличаются (например, flg1 может быть нулевым, а первые 0 или 1 могут появиться на flg3).

Мой окончательный вывод должен выглядеть примерно как файл изображения с меткой TARGET, выделенный желтым Target

...