使用循环条件在SAS中乘以列

时间:2017-06-03 07:00:01

标签: sas sas-macro sas-studio

Table from SAS

在此表中,Trans_Date列一直持续到2016年7月31日。

如何在一个循环下将Value列乘以Rate列(AUD的货币兑换,以及NZD,CAD,特定日期的currency_conv中显示的GBP)以显示每个Order_Number的值仅在AUD中?

“货币”列应仅以AUD表示。

1 个答案:

答案 0 :(得分:0)

您是否要求每种货币的每日澳元兑换率并相应地乘以每个条目?

为此您可以尝试以下方法:

首先,创建一个新表:

proc sql noprint;
create table rates as
select * from table
where Currency = 'AUD'
order by Trans_date;
quit;

data rates;
set rates;
by Trans_date;
output;
if last.Trans_date then do;
  currency_conv = 'AUD';
  rate = 1.;
  output;
end;
run;

现在加入表:

proc sql noprint;
create table as newTable
select a.*,a.value*b.rate as newValue
from table as a
left join (select * from rates) as b
on a.Trans_date = b.Trans_date
and a.currency = b.currency_conv;
quit;