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;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.