Сравнить строки в группе второго размера - PullRequest
0 голосов
/ 06 августа 2020

У меня есть приведенный ниже код, который прекрасно работает для сравнения строк в группе, когда первая строка не имеет значения.

data want_Find_Change;
    set WORK.IA;
    by ID;

    array var[*]  $      RATING;
    array lagvar[*]  $   zRATING;
    array changeflag[*] RATING_UPDATE;

    do i = 1 to dim(var);
        lagvar[i] = lag(var[i]);
    end;

    do i = 1 to dim(var) ;
        changeflag[i] = (var[i] NE lagvar[i] AND NOT first.ID);
    end;

   drop i;
run;

К сожалению, когда я использую набор данных с двумя строками на группу, я получаю неправильный возврат, я предполагаю, потому что первая строка должна использоваться в сравнении. Как я могу сравнить только строки и возврат только во второй строке. Это не сработало:

data Change;
    set WORK.Two;
    by ID;
    changeflag = last.RATING NE first.RATING;
run;

Пример данных, которые у меня есть и которые я хочу

 Group    Name     Sport     DogName   Eligibility 
   1      Tom      BBALL     Toto        Yes
   1      Tom      golf      spot        Yes
   2     Nancy     vllyball  Jimmy       yes
   2     Nancy     vllyball  rover       no

хочу

  Group    Name     Sport     DogName   Eligibility N_change  S_change  D_Change  E_change
     1      Tom      BBall     Toto        Yes      0           0        0       0
     1      Tom      golf      spot        Yes      0           1        1       0
     2     Nancy     vllyball  Jimmy       yes      0           0        0       0
     2     Nancy     vllyball  rover       no       0           0        1       1
...