Date: Thu, 11 Jul 2002 08:21:54 -0400
Reply-To: Howard_Schreier@ITA.DOC.GOV
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Howard_Schreier@ITA.DOC.GOV
Subject: Re: Wish: Bulk rename of variable list
This feature is present in V. 8.2.
For example:
data test;
retain abba1-abba3 5;
run;
data renamed;
set test;
rename abba1-abba3 = elvis1-elvis3;
run;
data _null_;
set renamed;
put _all_;
run;
The log shows:
elvis1=5 elvis2=5 elvis3=5 _ERROR_=0 _N_=1
SASTrap: This works in a RENAME= dataset option or in a RENAME statement in
a DATA step. It does not work in a RENAME statement in PROC DATASETS.
On Wed, 10 Jul 2002 13:52:40 -0400, Bob Burnham
<robert.a.burnham@DARTMOUTH.EDU> wrote:
>J.Groeneveld@ITGROUPS.COM (Jim Groeneveld) writes:
>
> +----------------------------------------------------------------
> | What I very much would appreciate in some new(er) SAS version is
> | a bulk-RENAME feature. Instead of (OldVar1=NewVar1
> | OldVar2=NewVar2 ...... OldVarN=NewVarN) I would like something
> | as (OldVar1 -- OldVarN = NewVar1 - NewVarN) or even a very
> | advanced (OldVar1 -- OldVarN = Prefix), automatically numbering
> | new variables starting with a given prefix.
> +----------------------------------------------------------------
>
>Hi Jim,
>
>That would be a cool feature to add. In the meantime, I use a
>macro like this one to do what you mention:
>
>%macro rename(old, new, n);
> %do i = 1 %to &n; &old&i=&new&i %end;
>%mend;
>
>/* generate some test data */
>
>data test (drop = x y);
> array abba {*} abba1-abba3;
> do x = 1 to 3;
> do y = 1 to 3;
> abba{y} = (x * 10) + y;
> end;
> output;
> end;
> run;
>
>/* rename abba1-abba3 to elvis1-elvis3 */
>
>proc datasets;
> modify test;
> rename %rename(abba, elvis, 3);
> run;
>
>The log then says:
>
>22 ! modify test;
>23 rename %rename(abba, elvis, 3);
>NOTE: Renaming variable abba1 to elvis1.
>NOTE: Renaming variable abba2 to elvis2.
>NOTE: Renaming variable abba3 to elvis3.
>24 run;
>
>
>It doesn't do everything that you might like, but it sure beats
>having to type out all of the variable names.
>
>Best regards to everyone on the list,
>
>Bob
>
>--
>Bob Burnham
>bburnham@dartmouth.edu
>http://www.dartmouth.edu/~bburnham
|