BookmarkSubscribeRSS Feed
achris
Calcite | Level 5

Hi there,

I have 12 numeric variables (values of either 0,1,2) an am hoping to create a single variable which counts the number of "1"s or "2"s across rows (I have over 20 000 obs); e.g. how many 2s or 1s are in each row/record (rows can have both 1 or 2 - so wont be able to divide out) - I know there must be a simple way of doing this but haven't had much luck yet - any help would be greatly appreciated? Thanks so much!

3 REPLIES 3
Reeza
Super User

Have you tried an array and do loop or are you looking for something different?

array vars(12) var1-var12;

var_count=0;

do i=1 to dim(vars);

if vars(i) in (1,2) then var_count+1;

end;

data_null__
Jade | Level 19

Peek?

data _012;
   array v[12];
   do id = 1 to 10;
     
do _n_ = 1 to dim(v);
         v[_n_]=rantbl(123,.3,.3)-1;
        
end;
        
output;
     
end;
  
run;
proc print;
  
run;
data count;
   retain id;
   array v[12];
   set _012;
   c0 = count(peekclong(addrlong(v[1]),dim(v)*8),put(0,rb8.));
   c1 = count(peekclong(addrlong(v[1]),dim(v)*8),put(1,rb8.));
   c2 = count(peekclong(addrlong(v[1]),dim(v)*8),put(2,rb8.));
   run;
proc print;
  
run;

3-10-2015 12-09-03 PM.png  
Haikuo
Onyx | Level 15

Another one Smiley Happy,

data countc;

set have;

array v v1-v12;

ctof12=countc(cats(of v(*)),'12');

run;

sas-innovate-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

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!

Register now

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 2432 views
  • 0 likes
  • 4 in conversation