Wow, gentlemen, I am really surprised with how detailed and useful your answers are When I see these tricks I have two contradictory feelings: 1) I feel upset about my poor knowledge of SAS and 2) I feel glad that there are so many interesting things to learn
Thanks a lot to all of you.
I have to send a kudos to SASJedi as well for going well beyond in his response what I would consider necessary and giving you not just an answer to point you in a direction but a real process to utilize.
I have to share my code:
I know it's a closed topic but I think this could be useful.
/************************************************************************************/
/* Descripcion general del programa: */
/* Suma las variables numericas de una tabla, sin especificar nombres. */
/* Autor : Saul Sanchez Sánchez */
/************************************************************************************/
data a;
do i=1 to 100;
a=abs(int(rand('NORMAL')*1000));
b=abs(int(rand('NORMAL')*1000));
c=abs(int(rand('NORMAL')*1000));
cl='a'||substr(left(compress(i)),1,1);
output;
end;
run;
data vars(where=(type='N'));
length name $ 8 type $ 1;
drop dsid i num rc;
dsid=open("work.a","i");
num=attrn(dsid,"nvars");
do i=1 to num;
name=varname(dsid,i);
type=vartype(dsid,i);
output;
end;
rc=close(dsid);
run;
data vars(keep=function);
set vars;
function='sum('||compress(name)||') as '||compress(name);
run;
proc sql;
select function into :function separated by ','
from vars;
quit;
%put &function;
proc sql;
create table b as
select cl, &function
from a
group by 1;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.