BookmarkSubscribeRSS Feed
Ronein
Meteorite | Level 14

Hello

I have a summary table that contain 3 categorical variables and one continuous variable(called "Reduce").

There are 18 rows (and 18 numbers of "Reduce" var).

The target is to display same table in a structure of 3 rows  and 6 columns.

I have added 2 variables called:Row Column  that tell uf where to locate each number.

What is the way to create the required table please?

Data Summarytbl;
infile datalines dsd;
input Cat2_Y $ 	Cat1_Y $ 	Cat1_X $ 	Reduce 	Row  	Column ;
cards;
No,SecondMax,No,15000,1,1
No,SecondMax,10,14500,1,2
No,SecondMax,20,12000,1,3
No,Max,No,11500,1,4
Yes,SecondMax,No,11000,2,1
No,Max,10,10500,1,5
Yes,SecondMax,10,10000,2,2
No,Max,20,9500,1,6
Yes,SecondMax,20,9000,2,3
Yes,Max,No,8500,2,4
Yes,Max,10,8000,2,5
Yes,Max,20,5000,2,6
Yes,SecondMax,No,4500,3,1
Yes,SecondMax,10,4000,3,2
Yes,Max,No,3500,3,4
Yes,SecondMax,20,3000,3,3
Yes,Max,10,2500,3,5
Yes,Max,20,2000,3,6
;
run;

 

3 REPLIES 3
PaigeMiller
Diamond | Level 26

What text should we have the row names be? 1 2 or 3

What text should we have the column names be? 1 2 3 4 5 or 6

--
Paige Miller
Cynthia_sas
SAS Super FREQ

Hi:

  This is what you can get from PROC REPORT using your ROW, COLUMN and other variables:

proc_report_across.png

 

However, I'm not sure from your description that this is what you intended with Cat2_Y, Cat1_Y, Cat1_X and Reduce all under the columns. And this output generates a report, not a data set.

 

Cynthia

RichardDeVen
Barite | Level 11

Reshaping your data into a 3 x 6 table will lose the categorical context maintained by cat1_x cat1_y cat2_y.

 

Transpose will create an output data set with the new shape

proc sort data=have;
  by row column;
run;

proc transpose data=have out=want;
  by row;
  id column;
  var reduce;
run;

 

Tabulate can report the data in a new shape

proc tabulate data=have;
  class row column;
  var reduce;

  table 
    row='', 
    column=''*reduce=''*sum=''
  ;
run;

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

How to Concatenate Values

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 3 replies
  • 412 views
  • 1 like
  • 4 in conversation