我有一个SAS数据集,包含以下13个字段:
base_price tax_month1-12
基本价格是支付税款前的产品价格,tax_month是每个月需要收取的税率。
我想创建一个新的变量组tax_paid1-12,它是base_price和每个纳税月份的乘积。
是否有一种有效的方法在SAS中执行此操作而不是一次增加字段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;