BookmarkSubscribeRSS Feed
Siddharth123
Obsidian | Level 7

Hi All,

 

Could anyone help me in this problem. I have a SAS Dataset created as follows -

 

Data test;
input Id a b c;
infile datalines;
datalines;
123 20 30 50
124 1 5 8
;
run;

 

I want to create a new column, say 'Total', which gives me a total count for the columns a, b, c. For example for the Id 124 in table above the SAS output data should give me -

 

Id      Total

124     a

124     b

 124    b

 124    b

 124    b

 124    b

 124    c

 124    c

 124    c

 124    c

 124    c

 124    c

 124    c

 124    c

 

Any help will be much appreciated.

 

Kind regards

 

SK

2 REPLIES 2
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Hi,

 

Something like:

data test;
  input id a b c;
  infile datalines;
datalines;
123 20 30 50
124 1 5 8
;
run;
data want (keep=id total);
  length total $10;
  set test;
  array vars{3} a b c;
  do i=1 to 3;
    do j=1 to vars{i};
      call vname(vars{i},total);
      output;
    end;
  end;
run;
Ksharp
Super User
Data test;
input Id a b c;
infile datalines;
datalines;
123 20 30 50
124 1 5 8
;
run;
data want;
 set test;
 array x{*} a b c;
do j=1 to dim(x);
 total=vname(x{j});
 do i=1 to x{j};
  output;
 end;
end;
 drop i j a b c;
run;

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of 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
  • 2 replies
  • 1085 views
  • 0 likes
  • 3 in conversation