Macros SAS中宏变量的属性更改

Macros SAS中宏变量的属性更改,macros,sas,Macros,Sas,我有一个宏变量,如&a,其值为(1234.45)*。我试图从宏中替换(和),并将它们替换为负数,因为它是负数 %let a=(1234.45) 我应用的一些选项是 %macro test1; %if %substr(&a,1,1) = '(' %then %do; %let b=%substr(&a,1,'-') %end; %mend; %test1 这是数字转换,最好在数据步骤中处理。如果出于某种原因确实需要宏变量,请使用SYMPUT %let a

我有一个宏变量,如&a,其值为(1234.45)*。我试图从宏中替换,并将它们替换为负数,因为它是负数

%let a=(1234.45)
我应用的一些选项是

%macro test1;

%if %substr(&a,1,1) = '(' %then %do; 
        %let b=%substr(&a,1,'-')
%end;

%mend;

%test1

这是数字转换,最好在数据步骤中处理。如果出于某种原因确实需要宏变量,请使用SYMPUT

%let a=(1234.45);

data _null_;
x=input("&a.",comma10.);
call symputx("b",x);
run;
%put &=a &=b;

这是数字转换,最好在数据步骤中处理。如果出于某种原因确实需要宏变量,请使用SYMPUT

%let a=(1234.45);

data _null_;
x=input("&a.",comma10.);
call symputx("b",x);
run;
%put &=a &=b;

精彩的。非常感谢,太好了。非常感谢你。