/****************************************************************************** Project: Immigration Data Linkage Project (ircc_link) File: S:\ircc_link\prog\gillesd\concept_samples\refugee_class.sas Programmer: Gilles R. Detillieux First Created: Oct. 24, 2022 Revisions: none Input datasets: registry.ircc_legacy_landing_1985jan: IRCC landing data from 1985 to 1999 registry.ircc_landing_2000jan: IRCC landing data from 2000 to 2017 Description: This program combines the IRCC permanent resident landing datasets (legacy and current data) and categorizes refugee class into five main groups. It converts the legacy imm. category code into the equivalent application category ID code in the newer landing data, so that legacy categories can be classified using a format for the newer codes. ******************************************************************************/ options nocenter; *** other IRCC formats developed at MCHP; proc format; %include 'S:\ircc_link\fmtlib\IRCC_IMM_CAT_to_APPL_CAT.txt'; %include 'S:\ircc_link\fmtlib\IRCC_application_refugee_class.txt'; run; *** Get arrival & landing data from legacy and current landing datasets; data landing; set registry.ircc_legacy_landing_1985jan (in=in_ll keep=idno arrival_dt landing_dt acqdt immigration_category_cd) registry.ircc_landing_2000jan (in=in_cl keep=idno arrival_dt landing_dt acqdt application_category_id); where acqdt = '14may2019'd; * determine refugee class groupings from legacy or current landing data; length refugee_class $60; legacy = in_ll; if legacy then appid = input(put(immigration_category_cd,IRCC_IMM_CAT_to_APPL_CAT.),8.0); else appid = application_category_id; * convert appl. category to refugee class, remove code at start; if appid > 0 then refugee_class = put(appid, IRCC_application_refugee_class_s.); label refugee_class = 'Refugee Class'; drop appid; run; *** report on landing categories; title 'Landed immigrants in Canada, by landing year and refugee class'; proc freq data=landing; tables landing_dt*refugee_class / list missing; format landing_dt year4.; run; *** a little cleanup; proc delete data=landing; run;