Date: Mon, 10 Apr 2006 19:04:45 +0000
Reply-To: toby dunn <tobydunn@HOTMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: toby dunn <tobydunn@HOTMAIL.COM>
Subject: Re: Two level format name, possible?
In-Reply-To: <200604101611.k3AF4fmx024221@mailgw.cc.uga.edu>
Content-Type: text/plain; format=flowed
Ya ,
Since my SAS Server is still down and I have nothing better to do with my
time than ponder SAS-L posts so let me make this observations. Given your
name collision problem with the formats you have two choices: 1.) redo your
format names, in which case not much of a problem. I would use PutN (Howard
makes a good point here) and create the format name on the fly. or 2.) Read
your formats into SAS and then combine them there in what ever fashion you
deem desirable. Again I would do something where I could create the format
names on the fly. PutN alone and no amount of nesting formats is directly
gonna solve your problem.
Toby Dunn
From: Ya Huang <ya.huang@AMYLIN.COM>
Reply-To: Ya Huang <ya.huang@AMYLIN.COM>
To: SAS-L@LISTSERV.UGA.EDU
Subject: Re: Two level format name, possible?
Date: Mon, 10 Apr 2006 12:11:45 -0400
Sorry, these two lines were left out in my previous post:
libname v1 "c:\temp\v1";
libname v2 "c:\temp\v2";
On Mon, 10 Apr 2006 12:09:54 -0400, Ya Huang <ya.huang@AMYLIN.COM> wrote:
>Hi there,
>
>Assuming that I have two formats catalog stored in two different place,
>and the format names are same. Is there any way I can use them in one
>data step with some kind two level name reference? I search the SAS-L
>archive, and found one very old thread (10 year ago) which basically
>concluded that no easy way to do this. I wonder if this has been changed
>with all the later version of SAS:
>
>proc format library=v1;
>value visit
>1='Day -7'
>2='Week 1'
>3='Week 4'
>;
>
>proc format library=v2;
>value visit
>1='Day -7'
>2='Week 1'
>3='Week 6'
>;
>
>data visit;
>study=1; visit=1; output;
>study=1; visit=2; output;
>study=1; visit=3; output;
>study=2; visit=1; output;
>study=2; visit=2; output;
>study=2; visit=3; output;
>run;
>
>** this doesn't work;
>data visit;
> set visit;
>if study=1 then cvisit=put(visit,v1.visit.);
>else if study=2 then cvisit=put(visit,v2.visit.);
>run;
>
>
>Thanks
>
>Ya
|