te
I have a data like as below
Name prevrecord currrecord
A 10 25
B 20 15
C 40 20
My outputput should look like
Name prevrecord prevpct currrecord currpct
A 10 14.28 25 41.6
B 20 28.57 15 25
C 40 57.14 20 33.33
Prevpct and currpct is the percentage of corresponding column.Which procedure i can use to acheive this?
Thanks,
Mani
data have;
input Name :$ prevrecord : currrecord;
cards;
A 10 25
B 20 15
C 40 20
;
proc sql;
create table want as
select name
,prevrecord
,prevrecord/sum(prevrecord)*100 format=5.2 as prevpct
,currrecord
,currrecord/sum(currrecord)*100 format=5.2 as currpct
from have;
quit;
proc print;run;
Linlin
data have;
input Name :$ prevrecord : currrecord;
cards;
A 10 25
B 20 15
C 40 20
;
proc sql;
create table want as
select name
,prevrecord
,prevrecord/sum(prevrecord)*100 format=5.2 as prevpct
,currrecord
,currrecord/sum(currrecord)*100 format=5.2 as currpct
from have;
quit;
proc print;run;
Linlin
Thanks.It worked.
proc tabulate data=have;
class name;
var prevrecord currrecord ;
table name,prevrecord*(sum colpctsum) currrecord*(sum colpctsum);
run;
The more, the merrier, here is a data step approach:
data want (drop=_:);
set have(in=up) have;
format prevpct currpct percent8.2;
if up then do;
_tp+prevrecord;
_tc+currrecord;
end;
else do;
prevpct=prevrecord/_tp;
currpct=currrecord/_tc;
output;
end;
run;
Haikuo
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
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.