*----------------------------------------------------------------------
Definition of country names and regions from codes, including
on-the-fly specification of MiddleEast
----------------------------------------------------------------------;

data country ;
  infile "../data/CntReg.csv" firstobs=2 delimiter=";" eof=lastrec ;
  length Landenavn Region $25 Text $31 ;
  input Landenavn $ Kode Region $ Startdato Slutdato
        ISOalfa2 $ ISOalfa3 $ ISOnum3 ;
  if Landenavn in ("Afganistan"
                   "Algeriet"
                   "Bahrain"
                   "Egypten"
                   "Iran"
                   "Irak"
                   "Israel"
                   "Jordan"
                   "Kuwait"
                   "Libyen"
                   "Marokko"
                   "Palæstina"
                   "Oman"
                   "Qatar"
                   "Saudi Arabien"
                   "Sudan"
                   "Syrien"
                   "Tunesien"
                   "Tyrkiet"
                   "Emiraterne"
                   "Yemen"
                   "Tyrkiet"
                   "Mellemøsten") then Region = "Middle East" ;
  if Landenavn in ("Albanien")    then Region = "East Block" ;
  if Landenavn in ("Danmark")     then Region = "Danmark" ;
  if Region eq "East block countries" then Region = "East Block" ;
  output ;
  return ;
* Add extra values for 5001, 5531 and 0 not defined in the input file ;
  lastrec: Kode = 5531 ;
      Landenavn = "?" ;
         Region = "?" ;
           output ;
           Kode = 0 ;
      Landenavn = "?" ;
         Region = "?" ;
           output ;
           Kode = 5001 ;
      Landenavn = "?" ;
         Region = "?" ;
           output ;
run ;

data country ( keep = Kode Text fmtname
             rename = ( Kode = start
                        Text = label ) ) ;
  set country ;
  Text = put( Kode, 4. ) || ": " || Landenavn ;
  fmtname = "Ncountry" ;
  output ;
     Text = Landenavn ;
  fmtname = "country" ;
  output ;
     Text = Region ;
  fmtname = "region" ;
  output ;
run ;

proc sort     data = country ; by fmtname start ; run ;
proc format cntlin = country  fmtlib  library=data ; run ;

data what ;
  set country ;
  reg = start ;
run ;

proc tabulate  data = what  noseps  order = formatted
     formchar = "           "  missing ;
  class reg start ;
  table reg * start ,
        n * f=4.
        / rts = 45  indent=5  ;
  format reg region.
       start country. ;
run ;

