Help using Base SAS procedures

Creating Duplicating Records based on column values

Reply
Contributor
Posts: 57

Creating Duplicating Records based on column values

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

Super User
Super User
Posts: 7,950

Re: Creating Duplicating Records based on column values

Posted in reply to Siddharth123

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;
Super User
Posts: 10,028

Re: Creating Duplicating Records based on column values

Posted in reply to Siddharth123
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;

Ask a Question
Discussion stats
  • 2 replies
  • 244 views
  • 0 likes
  • 3 in conversation