| Date: | Fri, 18 Apr 1997 13:11:42 +0100 |
| Reply-To: | Josune Gallego Merino <ccbgamej@SI.EHU.ES> |
| Sender: | "SAS(r) Discussion" <SAS-L@UGA.CC.UGA.EDU> |
| From: | Josune Gallego Merino <ccbgamej@SI.EHU.ES> |
| Subject: | PROBLEM WITH MACROVARIABLES |
| Content-Type: | TEXT/PLAIN; charset=US-ASCII |
|---|
Hello, SAS-Lers!
I 've got a problem. I want to give to some macrovariables the
values of some variables in order to use them later. I have
tried with the code below but the value of the macrovariable is always
the same, the name of the variable not its value. I want to know what is
wrong with the code.
Thanks in advance,
Josune Gallego
e-mail: ccbgamej@si.ehu.es
*******
program
*******
%let n = 5; * number of variables;
%let mbvara = mbeta;
%let bvara = beta;
%LET BBVARA = BBETA;
%MACRO BESTV( DATAIN = );
/* CREATES THE MACROVARIABLES MBETA0 - MBETA20 WITH THE VALUES OF THE
VARIABLES
BETA0 - BETA20 */
DATA &DATAI;
array bvar[&n] &bvara.0 - &bvara. %eval(&n -1);
ARRAY BVARC[&N] $8.4 &BBVARA.0 - &BBVARA.%eval(&n -1);
array bvar[&n] &bvara.0 - &bvara. %eval(&n -1);
* variables;
beta0 = -7.687; * intercept;
beta1 = -0.0251; * age;
beta2 = 1.8990; * sex;
beta3 = 1.7412; * chestp1;
beta4 = 0.7849; * chestp2;
%DO H = 0 %TO %eval(&n-1); * NUMBER OF VARIABLES;
BVARC[%eval(&h+1)] = PUT(BVAR[%eval(&h+1)],8.4) ;* CONVERTS THE
VALUE TO CHAR;
PUT 'VALOR DE BVARC ' BVARC[%eval(&h+1)]; * PRINTS THE VALUE OF THE VAR;
CALL SYMPUT("&MBVARA.&h",BVARC[%eval(&h+1)]);* ASSIGNS IT TO THE
MACROVAR?;
%END;
%END;
PROC PRINT;
%MEND;
DATA _NULL_;
%MEJORV( DATAI = &FLOG, MEJOR = VALMIN);
PUT "VALUE OF THE MACROVAR &MBVARA.1 IS &&MBVARA.1 ";
* PRINTS ONLY THE NAME OF THE VARIABLE, IT SHOULD BE THE VALUE
OF THE VAR;
PUT "VALUE OF THE MACROVAR &&MBVARA.1 IS &&&MBVARA.1 ";
PROC PRINT;
RUN;
|