SAS: Как превратить двустороннюю таблицу в реальные переменные? - PullRequest
2 голосов
/ 30 января 2012

У меня есть данные по отгрузкам нефти, и мне нужно создать их торговые потоки (место назначения-назначение по стране и региону). Например, суммируйте все грузы, идущие из Саудовской Аравии, Аравийского залива в США, США.

Я могу сделать это с помощью proc tabulate, но я хочу создать переменную. Мои переменные: LoadCountry, LoadArea, DischargeCountry, DischargeArea. Кроме того, LoadCountry или DischargeCountry могут быть перечислены несколько раз, если Area отличается, поэтому отдельный поток включает все четыре переменные.

Я должен иметь возможность использовать PROC SQL, но не могу понять, как сгруппировать несколько переменных для создания совокупной суммы:

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 Ответ

3 голосов
/ 31 января 2012

Если я вас правильно понимаю, вы почти у цели ... Просто добавьте три другие переменные в предложение 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...