I vaguely remember by using Proc Report we can produce a report with all variables listed vertically for each of the observations in the dataset, but I couldnt remember the syntax for that. Could someone kindly remind me the syntax?
For example, if I have a data set with the following observations
Name Sex Age
John M 30
Max M 56
Ann F 19
I would like to have a report displayed this way
Name: John
Sex: M
Age: 30
Name: Max
Sex: M
Age: 56
Name: Ann
Sex: F
Age: 19
option nodate;
ods pdf file='c:\temp\test.pdf' ;
title "";
proc report data=sashelp.class(obs=3) nowd headline headskip;
define name/group ;
break after name/ page;
run;
ods pdf close;
Thank you, but this would still list the variables as columns , not vertically as shown in the example, right?
Are you sure you are not thinking about PROC FSEDIT with the PRINTALL option?
Or if you do not have that licensed just use a data step.
data _null_;
file print ;
set sashelp.class ;
put (_all_) (=/);
run;
There are too many steps, I believe there is simple way.
proc sort data=sashelp.class out=temp;
by name;
run;
proc transpose data=temp out=temp1;
by name;
var name--age;
run;
data want;
set temp1;
if mod(_n_,3)=1 then k+1;
flag=k;
Name=cats(_name_,':');
keep flag name col1;
run;
proc report data=want(obs=3) nowd headskip headline noheader;
define flag/order noprint;
break after flag/page;
run
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.