使用现有变量组创建新的SAS变量组

时间:2016-10-25 06:32:12

标签: sas

我有一个SAS数据集,包含以下13个字段:

base_price tax_month1-12

基本价格是支付税款前的产品价格,tax_month是每个月需要收取的税率。

我想创建一个新的变量组tax_paid1-12,它是base_price和每个纳税月份的乘积。

是否有一种有效的方法在SAS中执行此操作而不是一次增加字段1?未来的月数可能会有所不同,因此我不想对变量组中的字段数进行硬编码。

1 个答案:

答案 0 :(得分:1)

不幸的是,您需要额外的步骤来计算月数。

您可以使用数组计算每个月的tax_paid

data source;
    infile datalines;
    input base_price tax_month1 tax_month2 tax_month3;
datalines;
1 2 . 4
5 6 7 8
;
run;

data _null_;
    set source;
    array tax_month(*) tax_month:;
    call symputx('n', dim(tax_month));
    stop;
run;

data result;
    set source;

    array tax_month(&n) tax_month1-tax_month&n;
    array tax_paid(&n) tax_paid1-tax_paid&n;

    do i = 1 to dim(tax_month);
        tax_paid(i) = base_price * tax_month(i);
    end;

    drop i;
run;