If-Abfrage

Nachdem mir hier immer so gut und schnell geholfen wird, wende ich mich mit meiner nächsten Frage mal wieder an dieses Forum:

Ich habe eine Datei TaktO, die neben einer ID für jede Beobachtung insgesamt 144 Variablen enthält, also ZHC1 bis ZHC144.
Nun möchte ich eine If-Abfrage machen, die überprüft, ob ZHC1 den Wert 122, 123 oder 125 hat. Falls das der Fall ist, soll der Wert verbleiben, falls nicht, soll ein Missing eingetragen werden. Dasselbe soll für ZHC2, ZHC3,....und ZHC144 geschehen.
Geht das mit einem Array? Und wie?

Vielen Dank und viele Grüsse,

S.

Ja, mit einem ARRAY

/* Beispieldaten erzeugen */
data zhc;
   
length id zhc1-zhc144 8;
   
array zhc zhc1-zhc144;
   
do id=1 to 10;
      
do over zhc;
         
/* Zufallszahlen zwischen 120 und 125 */
         
zhc = round(uniform(0)*5,1) + 120;
      
end;
      
output;
   
end;
run;

/* das eigentliche Programm */
data zhc;
   
set zhc;
   
/* alle Variablen zu einem Array zusammenfassen */
   
array zhc zhc1-zhc144;
   
/* über alle 144 Variablen */
   
do over zhc;
      
/* unerwünschte Werte auf Missing */
      
if zhc not in (122, 123, 125) then zhc=.;
   
end;
run;