BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
johngds
Fluorite | Level 6

In Proc Summary, is there any way to set the length of variables in the output out statement?  I'm trying to avoid having to write a separate data step to set the variable lengths.

1 ACCEPTED SOLUTION

Accepted Solutions
FreelanceReinh
Jade | Level 19

Hi @johngds,

 

You can use the KEEPLEN option of the OUTPUT statement of PROC SUMMARY to let the statistics inherit the lengths of the analysis variables. If this is not applicable to your analysis dataset (because the variables in question have full length there), you can apply it to a DATA step view quickly created from the dataset using an appropriate LENGTH statement. (Edit: You may want to set the VARLENCHK= system option to NOWARN in this case.)

View solution in original post

7 REPLIES 7
johngds
Fluorite | Level 6

Setting variable lengths will enable me to cut the size of the file down from 4.5 GB to about 2.5 GB.  I'll still be able to maintain precision.


@Kurt_Bremser wrote:

What do you want to gain by it? It is best to let the numeric variables keep the default maximum length of 8 (because of precision).


 

Tom
Super User Tom
Super User

@johngds wrote:

Setting variable lengths will enable me to cut the size of the file down from 4.5 GB to about 2.5 GB.  I'll still be able to maintain precision.


@Kurt_Bremser wrote:

What do you want to gain by it? It is best to let the numeric variables keep the default maximum length of 8 (because of precision).


 


Is that with or without compression?

FreelanceReinh
Jade | Level 19

Hi @johngds,

 

You can use the KEEPLEN option of the OUTPUT statement of PROC SUMMARY to let the statistics inherit the lengths of the analysis variables. If this is not applicable to your analysis dataset (because the variables in question have full length there), you can apply it to a DATA step view quickly created from the dataset using an appropriate LENGTH statement. (Edit: You may want to set the VARLENCHK= system option to NOWARN in this case.)

johngds
Fluorite | Level 6

Thanks to all who responded.  I was not aware of the KEEPLEN option for the OUTPUT OUT= statement.  Clean and easy, and it saves an additional data step.  The variable I am limiting the length to 4 is an integer and takes a value between 0 and 20,000.  

Tom
Super User Tom
Super User

@johngds wrote:

In Proc Summary, is there any way to set the length of variables in the output out statement?  I'm trying to avoid having to write a separate data step to set the variable lengths.


Which variables?  What statistics are you generating?  It might make sense to truncate the storage of integer values, but the mean, standard deviation and variance of integer is going to be a floating point value.  Those variables you won't want to truncate the storage.

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

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
  • 7 replies
  • 1473 views
  • 6 likes
  • 4 in conversation