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;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
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.