/*******************************************
* Macro to score the EPIC-26 *
* Version 6.2002 *
* *
* Last modified 30 October 2002 *
********************************************
* *
* Instructions for use: *
* *
* 1) Create a SAS dataset containing the *
* responses to
each of the EPIC *
* questions. Make sure that the *
* variable names
for each question use *
* the notation
of q#, where # is the *
* question
number found in the right *
* margin of the
instrument (e.g., the *
* first question
should be called q11). *
* *
* 2) Either include the following code in *
* your SAS
program or save it to a *
* drive and
refer to it using the *
* %include
statement *
* (e.g., %include
scoring.sas;) *
* *
* 3) Submit the macro call after *
* submitting the
code or %include *
* statement from
Step 2. *
* (e.g.,
%score(input,output), where *
* INPUT and
OUTPUT are the names of *
* your original
dataset and your *
* to-be-created
scored dataset, *
*
respectively.
*
**********************************************************
* *
* Example of use, assuming: *
* Input dataset is in c:\epic folder *
* Output dataset should go in c:\epic *
* Scoring macro file is called scoring-epic26-6.2002.sas
*
* and is located
in c:\epic *
*
*
* libname epic 'c:\epic'; *
* %include 'c:\epic\scoring-epic26-6.2002.sas'; *
* %scoresf(epic.qdata,epic.scoredata); *
*********************************************************/
%macro scoresf(input,output);
data
&output;
set
&input;
* EPIC
questions;
array
q15u{5} q23 q57 q58 q60 q64;
array
q14u{2} q26 q59;
array
q04d{15} q28 q29 q30 q31 q33 q49 q50 q52 q53 q54 q74 q75 q77 q78 q79;
array
q15d{3} q34 q55 q68;
* EPIC
standardized scores;
array
r15u{5} r23 r57 r58 r60 r64;
array
r14u{2} r26 r59;
array r04d{15}
r28 r29 r30 r31 r33 r49 r50 r52 r53 r54 r74 r75 r77 r78 r79;
array
r15d{3} r34 r55 r68;
* Create
EPIC standardized scores;
do i=1
to 5;
r15u[i]=(q15u[i]-1)*25;
end;
do i=1
to 2;
r14u[i]=round((q14u[i]-1)*100/3);
end;
do i=1
to 15;
r04d[i]=(q04d[i]-4)*-25;
end;
do i=1
to 3;
r15d[i]=(q15d[i]-5)*-25;
end;
r27=round((q27-3)*-100/3);
* Create
EPIC domain scores;
if n (of
r29-r31,r33) = 4 then uir=mean (of r29-r31,r33);
if n
(r23,of r26-r28) = 4 then uin=mean (r23,of r26-r28);
if n
(r49,r50,of r52-r55) >= 5 then b=mean (r49,r50,of r52-r55);
if n (of
r57-r60,r64,r68) >= 5 then s=mean (of r57-r60,r64,r68);
if n
(r74,r75,of r77-r79) >= 4 then h=mean (r74,r75,of r77-r79);
drop
r23-r34 r42-r80 i;
label
uir='Urinary
Irritative'
uin='Urinary
Incontinence'
b='Bowel'
s='Sexual'
h='Hormonal';
run;
%mend scoresf;