Suggestion: start with reversing the order of the rows. The other pieces of the problem are much more difficult.
Hi,
Reversing of all the observations in a data set is an easy process, We can do it in many forms.one of the solution.
data want;
do i=nobs to 1 by -1;
set have point=i nobs=nobs;
output;
end;
stop;
run;
Hello,
Here is a start, using @srinath3111 solution for reversing row order.
proc sql noprint;
SELECT nvar
INTO :ncols
FROM dictionary.tables
WHERE libname="SASHELP" and memname="CLASS";
quit;
data _NULL_;
set sashelp.vcolumn (where=(libname="SASHELP" and memname="CLASS")) end=eof;
array lengths (&ncols.) $5. _TEMPORARY_;
array columns (&ncols.) $32. _TEMPORARY_;
lengths(&ncols.-varnum+1)=ifc(strip(type)='char',cats('$',length,'.'),cats(length,'.'));
columns(&ncols.-varnum+1)=name;
if eof then do;
call execute('data want; format ');
do i=1 to &ncols.;
call execute(cat(' ',columns(i),lengths(i)));
end;
call execute('; do i=nobs to 1 by -1; set sashelp.class nobs=nobs point=i; output; end; stop; run;');
/* reverse values of numeric variables */
call execute('data want; set want; array nums(*) _NUMERIC_;');
do i=1 to &ncols.;
if substr(lengths(i),1,1) ne '$' then do;
call execute(cat(columns(i),'=input(reverse(put(',columns(i),',',lengths(i),')),',lengths(i),');'));
end;
end;
call execute('run;');
end;
run;
If "values within cells" are all a string, then that would be easy for IML code and data step.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
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!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.