【问题标题】:Attribute Change of Macro Variable in SASSAS中宏变量的属性变化
【发布时间】:2013-07-16 20:21:00
【问题描述】:

我有一个像 &a 这样的宏变量,其值为 (1234.45)*。我正在尝试替换宏中的 () 并用 negative 标记替换它们,因为它是负数。

%let a=(1234.45)

我应用的一些选项是

%macro test1;

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

%mend;

%test1

【问题讨论】:

    标签: macros sas


    【解决方案1】:

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

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

    【讨论】:

    • 太棒了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多