SAS:你如何将双向表转换为实际变量?

时间:2012-01-30 19:11:51

标签: sql sas

我有关于石油运输的数据,我需要创建这些(原产地 - 国家和地区)的贸易流量。例如,总结从沙特阿拉伯,阿拉伯海湾到美国,美国海湾的所有货物。

我可以使用proc制表,但我想创建一个变量。我的变量是:LoadCountry,LoadArea,DischargeCountry,DischargeArea。此外,如果区域不同,可以多次列出LoadCountry或DischargeCountry,因此不同的流程包括所有四个变量。

我应该可以使用PROC SQL,但我无法弄清楚如何通过GROUP BY几个变量来创建总和:

proc sql;   
title 'LoadCountry-LoadArea-DischargeCountry-DischargeArea Trade flows';
create table data.TradeFlow as 
select LoadCountry, LoadArea, DischargeCountry, DischargeArea,
sum(CargoSize) as TotalCargo
from data.allvars1
Group by LoadCountry
Order by LoadCountry, DischargeCountry;
quit;

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,你几乎就在那里......只需将其他三个变量添加到GROUP BY子句中:

proc sql;   
title 'LoadCountry-LoadArea-DischargeCountry-DischargeArea Trade flows';
create table data.TradeFlow as 
select LoadCountry, LoadArea, DischargeCountry, DischargeArea,
sum(CargoSize) as TotalCargo
from data.allvars1
Group by LoadCountry, LoadArea, DischargeCountry, DischargeArea
Order by LoadCountry, DischargeCountry;
quit;