LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (November 2008, week 3)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 17 Nov 2008 08:49:17 -0500
Reply-To:     SAS_learner <proccontents@GMAIL.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         SAS_learner <proccontents@GMAIL.COM>
Subject:      Re: Re-Ordering the Variables
Comments: To: Ian Whitlock <iw1sas@gmail.com>
In-Reply-To:  <30648bb30811141904j10134c68k910fc07b9cc17682@mail.gmail.com>
Content-Type: text/plain; charset=ISO-8859-1

Hello Ian,

Thank you so much for the help with the Macro, Yes I am looking for a macro very similar to what you have suggested. You have mentioned some disadvantes about using View rather sas dataset. I know you have already explained enough but I still did not understand what you mean 1) the reordering is done on the fly each time the view is used I did not understand what you mean ?? 2) a view doesn't have knowledge of the number of obs Is this good or bad for me ?? 3) the change in name can mess up down stream programs What exactly do you mean ??

What Exactly I am doing is that after deriving and mapping variables coming from Oracle database to SDTM variables then I need to put them in a particular order the way it is in the Document for that purpose I am using RETAIN statement at very end of the program and trying to END the datastep. Right now everything is fine but tomorrow if some body accidently does something in that dataset for any of the variables in the RETAIN list, then their values would be retained ( I am scared about the missing values getting the Previous values)

So I am looking for something would get me order and still not prone to any changes when some body accidently does something.

thanks SL

On 11/14/08, Ian Whitlock <iw1sas@gmail.com> wrote: > > Summary: View for reordering variables > #iw-value=1 > > SAS_Learner wants to have macro for reordering variables. I would > suggest a view. > > %macro order ( data = &syslast, out =, list= ) ; > %let data = &data ; /* force evaluation of &data */ > %if %length(&out) = 0 %then %let out = &data._v ; > data &out / view = &out ; > retain &list ; > set &data ; > run ; > %mend order ; > > %order ( data=sashelp.class, out=class_v, > list=age height name sex weight ) > > proc contents data = class_v ; > run ; > > The advantage of the view is that it doesn't cost to store the > copy of the data. The disadvantages are > > 1) the reordering is done on the fly each time the view is used > 2) a view doesn't have knowledge of the number of obs > 3) the change in name can mess up down stream programs > > If you think the disadvantages outweigh the advantages then just > change the DATA statement. > > You might join those suggesting that the data set dictionary be > given the ability to reorder variables. This should be a trivial > task since the physical order was separated from the logical > order with the introduction of version 6 about 18 years ago. The > failure to make use of that separation might now be considered a > twenty year old design bug in SAS data sets. > > Ian Whitlock >


Back to: Top of message | Previous page | Main SAS-L page