Say I have a dataset below;
country1 country2 transactions
Korea USA 100
USA Korea 100
I would like to make a new variable with one paired value and sum transactions together, that is I want
countrypair Total_trans
Korea-USA 200
So that Korea USA pair is the same as USA Korea pair.
I have 40 or so countries, and have to pair them like the example above.
Is there anyway to do this other than having to specify each country?
Thanks for your help
data have (keep=country transactions);
input country1 $ country2 $ transactions;
array cty(*) coun:;
call sortc(of cty(*));
country=catx('-',of cty(*));
cards;
Korea USA 100
USA Korea 100
;
data have (keep=country transactions);
input country1 $ country2 $ transactions;
array cty(*) coun:;
call sortc(of cty(*));
country=catx('-',of cty(*));
cards;
Korea USA 100
USA Korea 100
;
Arthur,
Very good.
Ksharp
data have (keep=country transactions);
input country1 $ country2 $ transactions;
array cty(*) coun:;
call sortc(of cty(*));
country=upcase(catx('-',of cty(*)));
cards;
Korea USA 100
USA Korea 100
China Canada 200
Canada China 300
;
proc sql;
create table want as
select country,sum(transactions) as total
from have
group by country;
quit;
proc print;run;
Obs country total
1 CANADA-CHINA 500
2 KOREA-USA 200
data have;
input country1 $ country2 $ transactions;
datalines;
Korea USA 100
USA Korea 100
;
proc sql;
create table want as
select case when country1<country2 then catx("-",country1,country2) else catx("-",country2,country1) end as countryPair,
sum(transactions) as trade
from have
group by calculated countryPair;
proc print; run;
PG
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.