This is where the use of a negative word position (the -1 in the scan function below) is helpful, because the -1 means the last word in a string of words:
data want;
input id business $60.;
length country $2.;
country=scan(business,-1);
business=substr(business,1,length(business)-length(country));
put business=;
cards;
47185 KN Outdoor Trading Inc US
4742 Luna sastreria S.A. ES
479 Norsok A/S DK
;
This code initially reads both business and country into the business variable.
Then it gets the last word of business for the country variable (scan with -1).
After that just take a substring of business minus the last X characters (where X is length(country)).
... View more