Hi all,
I am pretty new to SAS and have the following errors I can't seem to understand. Below is my code:
libname si "C:\Users\kxfarle\EmoryUE Dropbox\Emory Upper Extremity\TruvenOutputDropbox\TruvenDatabases\CTFiles";
libname md "C:\Users\kxfarle\EmoryUE Dropbox\Emory Upper Extremity\TruvenOutputDropbox\TruvenDatabases\CTFiles\CTDepOutput";
%macro allfiles (allpatients, comorbidities, complications, enrollment, readmit, dataout);
Proc SQL;
Create Table &DataOut as
Select Distinct
a.ENROLID,
a.PROC1,
a.rx,
a.SVCDATE,
a.AGE,
a.SEX,
a.PLANTYP,
a.REGION,
a.STDPLAC,
b.cm_obese,
b.CM_Renal,
b.CM_Alc,
b.cm_HLD,
b.cm_smoking,
b.cm_HTN,
b.cm_CAD,
b.cm_CHF,
b.cm_Rheum,
b.cm_DM,
b.CM_Depression,
b.CM_Anxiety,
b.CM_ADHD,
b.CM_LBP,
b.CM_FibroMy,
c.MI,
c.Stroke,
c.Pneumonia,
c.PneumoniaDays,
c.Sepsis,
c.SepsisDays,
c.DVT_PE,
c.DVT_PEDays,
c.Opioid_OD,
c.Opioid_ODDays,
c.PostOpPain,
c.PostOpPainDays,
c.EDVisit,
c.EDVisitDays,
c.EDVisitPain,
c.EDVisitPainDays,
c.WoundComplication,
c.Infection,
c.IandD,
c.CRPS,
c.Med_Nerve_Lesion,
c.Hypertroph_scar,
c.Dysesthesia,
d.Enrollment1y_1y,
d.Enrollment1y_3y,
d.Enrollment6M_3M,
d.Enrollment6m_1y,
d.Enrollment6m_3y,
e.readmit90,
e.readmit30,
From
&allpatients as a
Left join
&comorbidities as b
On
a.ENROLID = b.ENROLID
Left join
&complications as c
On
a.ENROLID = c.ENROLID
Left join
&enrollment as d
on
a.ENROLID = d.ENROLID
Left join
&readmit as e
on
a.ENROLID = e.ENROLID;
Quit;
%Mend allfiles;
%allfiles (si.cccombinedv1, md.CCcomorbidities, md.CCcomplications90, si.ccenrollmentok, md.CCreadmit, md.ccallpatients);
%allfiles (si.mdcombinedv1, md.MDcomorbidities, md.MDcomplications90, si.mdenrollmentok, md.MDreadmit, md.mdallpatients);Here's the error I keep getting:
1 libname si "C:\Users\kxfarle\EmoryUE Dropbox\Emory Upper
1 ! Extremity\TruvenOutputDropbox\TruvenDatabases\CTFiles";
NOTE: Libref SI was successfully assigned as follows:
Engine: V9
Physical Name: C:\Users\kxfarle\EmoryUE Dropbox\Emory Upper
Extremity\TruvenOutputDropbox\TruvenDatabases\CTFiles
2 libname md "C:\Users\kxfarle\EmoryUE Dropbox\Emory Upper
2 ! Extremity\TruvenOutputDropbox\TruvenDatabases\CTFiles\CTDepOutput";
NOTE: Libref MD was successfully assigned as follows:
Engine: V9
Physical Name: C:\Users\kxfarle\EmoryUE Dropbox\Emory Upper
Extremity\TruvenOutputDropbox\TruvenDatabases\CTFiles\CTDepOutput
3
4 %macro allfiles (allpatients, comorbidities, complications, enrollment, readmit, dataout);
5 Proc SQL;
6 Create Table &DataOut as
7 Select Distinct
8 a.ENROLID,
9 a.PROC1,
10 a.rx,
11 a.SVCDATE,
12 a.AGE,
13 a.SEX,
14 a.PLANTYP,
15 a.REGION,
16 a.STDPLAC,
17 b.cm_obese,
18 b.CM_Renal,
19 b.CM_Alc,
20 b.cm_HLD,
21 b.cm_smoking,
22 b.cm_HTN,
23 b.cm_CAD,
24 b.cm_CHF,
25 b.cm_Rheum,
26 b.cm_DM,
27 b.CM_Depression,
28 b.CM_Anxiety,
29 b.CM_ADHD,
30 b.CM_LBP,
31 b.CM_FibroMy,
32 c.MI,
33 c.Stroke,
34 c.Pneumonia,
35 c.PneumoniaDays,
36 c.Sepsis,
37 c.SepsisDays,
38 c.DVT_PE,
39 c.DVT_PEDays,
40 c.Opioid_OD,
41 c.Opioid_ODDays,
42 c.PostOpPain,
43 c.PostOpPainDays,
44 c.EDVisit,
45 c.EDVisitDays,
46 c.EDVisitPain,
47 c.EDVisitPainDays,
48 c.WoundComplication,
49 c.Infection,
50 c.IandD,
51 c.CRPS,
52 c.Med_Nerve_Lesion,
53 c.Hypertroph_scar,
54 c.Dysesthesia,
55 d.Enrollment1y_1y,
56 d.Enrollment1y_3y,
57 d.Enrollment6M_3M,
58 d.Enrollment6m_1y,
59 d.Enrollment6m_3y,
60 e.readmit90,
61 e.readmit30,
62 From
63 &allpatients as a
64 Left join
65 &comorbidities as b
66 On
67 a.ENROLID = b.ENROLID
68 Left join
69 &complications as c
70 On
71 a.ENROLID = c.ENROLID
72 Left join
73 &enrollment as d
74 on
75 a.ENROLID = d.ENROLID
76 Left join
77 &readmit as e
78 on
79 a.ENROLID = e.ENROLID;
80 Quit;
81 %Mend allfiles;
82 %allfiles (si.cccombinedv1, md.CCcomorbidities, md.CCcomplications90, si.ccenrollmentok,
82 ! md.CCreadmit, md.ccallpatients);
NOTE: Line generated by the macro variable "ALLPATIENTS".
1 si.cccombinedv1
--
1
-
22
76
WARNING 1-322: Assuming the symbol IS was misspelled as si.
ERROR 22-322: Syntax error, expecting one of the following: MISSING, NOT, NULL, ^, ~.
ERROR 76-322: Syntax error, statement will be ignored.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
83 %allfiles (si.mdcombinedv1, md.MDcomorbidities, md.MDcomplications90, si.mdenrollmentok,
83 ! md.MDreadmit, md.mdallpatients);
NOTE: Line generated by the macro variable "ALLPATIENTS".
1 si.mdcombinedv1
--
1
-
22
76
WARNING 1-322: Assuming the symbol IS was misspelled as si.
ERROR 22-322: Syntax error, expecting one of the following: MISSING, NOT, NULL, ^, ~.
ERROR 76-322: Syntax error, statement will be ignored.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.00 seconds
cpu time 0.00 secondsCan anyone help me, please?
Rule #1 of macro development: start with working non-macro code.
e.readmit30, /* remove this comma */
From
&allpatients as a
Rule #1 of macro development: start with working non-macro code.
e.readmit30, /* remove this comma */
From
&allpatients as a
Thank you! This was the exact solution.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.