The data looks like this:
data temp;
input ID Var1 Var2 Var3;
datalines;
001 x11 x12 x13
002 x21 . x23
003 . . . ;
I want to create a new variable (Count) which counts the frequency of valid values from Var1 to Var3, so the new data looks like:
ID Var1 Var2 Var3 Count
001 x11 x12 x13 3
002 x21 . x23 2
003 . . . .
;
I'm not sure if the count value for ID=003 is missing value or 0, but the idea is basically the same.
data want;
set temp;
count=0;
array v var:;
do over v;
if v ne ' ' then count+1;
end;
run;
Will this help you?
data want;
set temp;
array k
count = dim(k) - cmiss(of k
run;
Use the n() function, if the data is numeric not character.
data want;
set temp;
array k
count = n(of k
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.
Find more tutorials on the SAS Users YouTube channel.