Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个像&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;