Проверка SAS поле за столбцом за столбцом - PullRequest
0 голосов
/ 19 марта 2019

SAS проверяет поле по полю и вводит имя поля, когда 0

У меня новая небольшая проблема.Я хочу проверить поле за полем, совпадают ли значения.Ряд за рядом.И отлично, если код вставит новую строку со статусами «ОК» и «НЕ ОК».

data Have;
   input REFERENCE_DATE  
         L_CONTRACT 
         L_CONTRACT_ACTIVITY
         L_LFC
         L_CONTRACT_CO_CUSTOMER
         L_CONTRACT_OBJECT
         L_CUSTOMER
         L_CUSTOMER_RETAIL
         L_DPD
         L_GL_ACCOUNT 
         L_GL_AMOUNT
         L_EXTRA_COST 
         L_PRODUCT;
   datalines;
450 1 9 8 6 0 4 3 0 0 0 0 0
450 1 8 8 5 5 3 3 0 0 0 0 1
;

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

Data Have_to;
length variables $1000;
    set Have;
    array L L_CONTRACT -- L_PRODUCT;
        DO _n_ = 1 to dim(L);
            IF L(_n_) ne lag1(L(_n_)) THEN variables = catx(' ', variables, vname(L(_n_)));
        END;
run;

И как я могу создать новую таблицу, где у меня будут только столбцы, где код вычисляет различия? (Впример: L_CONTRACT_ACTIVITY L_CONTRACT_CO_CUSTOMER L_CONTRACT_OBJECT L_CUSTOMER L_PRODUCT).

С уважением и благодарностью

1 Ответ

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

Для этого не нужно изобретать велосипед - читайте в разделе «Сравнение процессов»:

http://support.sas.com/documentation/cdl/en/proc/65145/HTML/default/viewer.htm#n1f136xdchlfrtn1663tmzklctb6.htm

...