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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.