<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Dataline is not working in a Macro? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869193#M343355</link>
    <description>&lt;P&gt;You cannot use in-line data inside a macro.&amp;nbsp; Once the macro is compiled the "lines" would be gone any way.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your example dataset is trivial to create without in-line data.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Valid_ICD;
  LENGTH icd_10_cm $10;
  do icd_10_cm = 
'H669'
,'0219'
,'D59219'
,'Z283'
,'M545'
,'R05'
,'J899'
,'Y938'
,'Z20882'
;
  output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 11 Apr 2023 19:36:37 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2023-04-11T19:36:37Z</dc:date>
    <item>
      <title>Dataline is not working in a Macro?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869167#M343340</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;BR /&gt;I have the following macro code below.&amp;nbsp; An error message was shown in the log window when it ran.&amp;nbsp; Could a data line step be run in Macro Macro steps? Please help.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro AriINPChart;
proc sort data=icd_10_cm_b; by icd_10_cm; run;

data icd_10_cm; set icd_10_cm_a icd_10_cm_b; run;

proc sort data=icd_10_cm nodupkey; by icd_10_cm; run;

data Valid_ICD;
LENGTH icd_10_cm $ 10;
input icd_10_cm $;
infile datalines delimiter="/";
datalines;
H669/
0219/
D59219/
Z283/
M545/
R05/
J899/
Y938/
Z20882/
;
run;

proc sort data=Valid_ICD; by icd_10_cm; run;

%macro vvv(ooo);
%do ooo=1 %to 10;
%let i=(&amp;amp;rr + 1);
%let rr=%eval(&amp;amp;i);

data inptadmitdx&amp;amp;ooo;
set ds2inp (keep=studysite scrdate caseid inptadmitdt inptdischargedt inptadmitdx&amp;amp;ooo);
if inptadmitdx&amp;amp;ooo ne ' ';
if inptadmitdx&amp;amp;ooo in('999.9999','999..999','999.999','U07.1','U07.0','R51','M35.8') then delete;
icd_10_cm=upcase(compress(inptadmitdx&amp;amp;ooo,',.[]-/'));
run;

proc sort data=inptadmitdx&amp;amp;ooo; by icd_10_cm; run;

data inpcr&amp;amp;rr (keep=studysite scrdate caseid inptadmitdt inptdischargedt inptadmitdx&amp;amp;ooo icd_10_cm);
merge inptadmitdx&amp;amp;ooo (in=a) icd_10_cm (in=b) Valid_ICD (in=c);
by icd_10_cm;
if a=1 and b ne 1 and c ne 1;
run;

proc sort data=inpcr&amp;amp;rr; by studysite caseid; run;

%let inp_&amp;amp;rr.a=%str(Admission diagnosis [inptadmitdx&amp;amp;ooo.] does not match ICD-10-CM code list);

ods proclabel "Check &amp;amp;rr:&amp;amp;&amp;amp;inp_&amp;amp;rr.a";

data inpcr&amp;amp;rr;
set inpcr&amp;amp;rr;
if caseid in ('EH1R09895') then delete;
var1='scrdate='||trim(left(put(scrdate,mmddyy10.)))
||', '||"inptadmitdt="||trim(left(put(inptadmitdt,mmddyy10.)))
||', '||"inptdischargedt="||trim(left(put(inptdischargedt,mmddyy10.))) 
||', '||"inptadmitdx&amp;amp;ooo.="||trim(left(put(inptadmitdx&amp;amp;ooo,$20.)));
||', '||"inptadmitdx&amp;amp;ooo. without special symbol="||trim(left(put(icd_10_cm,$20.)));
format studysite studysite.;
run;

%createinp;
%end;

%mend vvv;
%vvv;


%mend AriINPChart;
%AriINPChart;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;MPRINT(ARIINPCHART):   data Valid_ICD;
MPRINT(ARIINPCHART):   LENGTH icd_10_cm $ 10;
MPRINT(ARIINPCHART):   input icd_10_cm $;
MPRINT(ARIINPCHART):   infile datalines delimiter="/";
MPRINT(ARIINPCHART):   datalines;

ERROR: The macro ARIINPCHART generated CARDS (data lines) for the DATA step, which could cause
       incorrect results.  The DATA step and the macro will stop executing.
NOTE: The data set WORK.VALID_ICD has 0 observations and 1 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds


MPRINT(ARIINPCHART):  ;
MPRINT(ARIINPCHART):  ;
MPRINT(ARIINPCHART):  ;
MPRINT(ARIINPCHART):  ;
ERROR: The macro ARIINPCHART will stop executing.
2165
&lt;/PRE&gt;</description>
      <pubDate>Tue, 11 Apr 2023 18:27:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869167#M343340</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2023-04-11T18:27:30Z</dc:date>
    </item>
    <item>
      <title>Re: Dataline is not working in a Macro?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869169#M343342</link>
      <description>&lt;P&gt;DATALINES (or CARDS or similar) is not supported in SAS macro. One workaround is to write this data to a file outside of the macro, and then make that file available to the macro during its execution and reference with INFILE. Others here might have more suggestions.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2023 18:35:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869169#M343342</guid>
      <dc:creator>ChrisHemedinger</dc:creator>
      <dc:date>2023-04-11T18:35:20Z</dc:date>
    </item>
    <item>
      <title>Re: Dataline is not working in a Macro?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869170#M343343</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4"&gt;@ChrisHemedinger&lt;/a&gt;&amp;nbsp;is right. But looking at this part of the code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=icd_10_cm_b; by icd_10_cm; run;

data icd_10_cm; set icd_10_cm_a icd_10_cm_b; run;

proc sort data=icd_10_cm nodupkey; by icd_10_cm; run;

data Valid_ICD;
LENGTH icd_10_cm $ 10;
input icd_10_cm $;
infile datalines delimiter="/";
datalines;
H669/
0219/
D59219/
Z283/
M545/
R05/
J899/
Y938/
Z20882/
;
run;

proc sort data=Valid_ICD; by icd_10_cm; run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;There's no reason for any of this to be inside a macro.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can also put your data inside an external text file or external CSV file, and read it in from the external file, that should work inside a macro.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2023 18:38:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869170#M343343</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2023-04-11T18:38:09Z</dc:date>
    </item>
    <item>
      <title>Re: Dataline is not working in a Macro?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869171#M343344</link>
      <description>&lt;P&gt;DATALINES cannot be used in a macro, and macro triggers are not recognized in a DATALINES block. Run the DATA step with the DATALINES outside of the macro.&lt;/P&gt;</description>
      <pubDate>Tue, 11 Apr 2023 18:42:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869171#M343344</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2023-04-11T18:42:11Z</dc:date>
    </item>
    <item>
      <title>Re: Dataline is not working in a Macro?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869193#M343355</link>
      <description>&lt;P&gt;You cannot use in-line data inside a macro.&amp;nbsp; Once the macro is compiled the "lines" would be gone any way.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your example dataset is trivial to create without in-line data.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data Valid_ICD;
  LENGTH icd_10_cm $10;
  do icd_10_cm = 
'H669'
,'0219'
,'D59219'
,'Z283'
,'M545'
,'R05'
,'J899'
,'Y938'
,'Z20882'
;
  output;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 11 Apr 2023 19:36:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869193#M343355</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2023-04-11T19:36:37Z</dc:date>
    </item>
    <item>
      <title>Re: Dataline is not working in a Macro?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869401#M343399</link>
      <description>&lt;P&gt;Another solution if you need to use the DATALINES statement in a macro call is to put the datastep code in a separate SAS file, and then just %INCLUDE it from the macro&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%macro AriINPChart;
proc sort data=icd_10_cm_b; by icd_10_cm; run;

data icd_10_cm; set icd_10_cm_a icd_10_cm_b; run;

proc sort data=icd_10_cm nodupkey; by icd_10_cm; run;

%include 'c:\datastep.sas';
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;- you probably want another path for the datastep code, but that's the idea.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 12:07:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869401#M343399</guid>
      <dc:creator>s_lassen</dc:creator>
      <dc:date>2023-04-12T12:07:57Z</dc:date>
    </item>
    <item>
      <title>Re: Dataline is not working in a Macro?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869407#M343401</link>
      <description>&lt;P&gt;Just to have the full answer, here is "why?"&amp;nbsp;&lt;A href="https://support.sas.com/kb/43/902.html" target="_blank"&gt;https://support.sas.com/kb/43/902.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Bart&lt;/P&gt;</description>
      <pubDate>Wed, 12 Apr 2023 13:07:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Dataline-is-not-working-in-a-Macro/m-p/869407#M343401</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2023-04-12T13:07:00Z</dc:date>
    </item>
  </channel>
</rss>

