Date: Thu, 19 Dec 2002 15:00:28 -0600
Reply-To: Paul Thompson <paul@WUBIOS.WUSTL.EDU>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Paul Thompson <paul@WUBIOS.WUSTL.EDU>
Organization: Washington University in St. Louis
Subject: Re: return value from macro?
Content-Type: text/plain; charset=us-ascii; format=flowed
whoops - forgot to see the other error in your code - remove the ; from
Paul Thompson wrote:
> looks like a macro scope problem to me. return is defined as local
> unless you set it beforehand.
>
> Modify your code by adding
> %let return=;
> as noted below, and try again.
>
> N Yiannakoulias wrote:
>
>> Hi all,
>>
>> Is it possible to have macros return a value? If so, what
>> am I doing wrong here?
>>
>> %MACRO getmean(the_data, v);
>> PROC SQL;
>> SELECT sum(&v)/count(&v) INTO: return
>> FROM &the_data;
>> QUIT;
&return
>> %MEND;
>>
>> DATA test;
>> INPUT v1 v2;
>> CARDS;
>> 2 3
>> 2 1
>> 3 2
>> 1 7
>> 4 2
>> 1 1
>> ;
>
>
> %let return=;
>
>> DATA test2;
>> SET test;
>> IF %getmean(test, v1) > 2 THEN DO;
>> error=%getmean(test, v1);
>> END;
>> RUN;
>>
>> N
>>
>
|