/*----------------------------------------------------------------------------- File: ModifyLinkPlusReport.sas Author: John Sabel john.sabel@ofm.wa.gov Washington State Education Research & Data Center Creation date: 1/31/12 Version: 0.9 Purpose This program modifies the SAS version of a Link Plus report that is generated by "ReadInLinkPlusReport.sas." It modifies Link Plus's "score" variable so that each Link Plus "class" value has a non-overlapping range of scores. In other words: 1) Class 1: Range of modified scores, 0 to 99.9 2) Class 2: Range of modified scores, 100 to 199.9 3) Class 3: Range of modified scores, 200 to 299.9 4) etc. What reassigning the score variable allow you to do is to perform clerical review in Link Plus by class. For example, the definition of Link Plus's class 1 is where matches have the same SSN, birth date, first name, and last name. In this case, barring unusual cases such as single letter first or last names, you would want to accept the entire class, regardless of score. After using this macro, followed by "AssembleLinkPlusReport.sas", in Link Plus's clerical review function, you could accept all scores that range from 0 to 99.9. In a similar fashion, you could come up with accept/reject scores for each class. This is a barebones implementation. You could also modify class definitions in the code, and come up with additional classes. I have used up to 99 classes before. Input Parameters ReportDsnIn: Data from a Link Plus report as a SAS dataset. Debug: Not used. Output Parameters ReportDsnOut: Modified data from a Link Plus report as a SAS dataset. -----------------------------------------------------------------------------*/ %macro ModifyLinkPlusReport(ReportDsnIn=, ReportDsnOut=, Debug=N); %put --- Start of %upcase(&sysmacroname) macro; /* Mofifies Link Plus report data that was loaded into a SAS */ data &ReportDsnOut.; set &ReportDsnIn.; /* In the program "ReadInLinkPlusReport.sas", the original variable names are stored in the macro variables "put_1" and "put_2" (or in "justtabs"). These macro variables are then used to define the output for the modfied Link Plus report generated in "AssembleLinkPlusReport.sas." As a result, the output dataset defined by "ReportDataset" here can have as many additional intermediate variables as desired. */ orig_score = score; orig_class = class; score = (class * 100) + score; run; proc sort data=&ReportDsnOut.; by class descending score ; run; %if &Debug.=Y %then %do; %put NOTE: The Debug parameter was set to Y, but this macro does not have a debug mode.; %end; %put --- End of %upcase(&sysmacroname) macro; %mend ModifyLinkPlusReport;