<?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 Code does not work within a macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145424#M28999</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, I need the baseline covariates fro PHREG for each of the random sample with replacement. THis code does see to work well. The problem is with &lt;/P&gt;&lt;P&gt;baseline covariates=Pattern_&amp;amp;pt out=survs_&amp;amp;u survival= survival;.&lt;/P&gt;&lt;P&gt;NB: I need to run this within a macro because I have some matrices to compute. Or within a for loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data neww;&lt;/P&gt;&lt;P&gt; seed=-1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; alpha1 = 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta1 = 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta2=10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 141;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Age=40+(5)*rannor(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lambdaT = 0.025; *baseline hazard;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lambdaC= .03;&amp;nbsp; *heavy=0.15; *light=0.03;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; er=0+(0.01)*rannor(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = rand("WEIBULL", 0.75, lambdaT);&amp;nbsp; * time of event;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = rand("WEIBULL", 1.25, lambdaC) ;* time of censoring;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; monset = min(t, c);&amp;nbsp;&amp;nbsp;&amp;nbsp; * which came first?;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obs=(t lt c); * creating observation vaiable from censored when observeed obs=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; pibflr= alpha1 + beta1*t + beta2*Age +er;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let pt=pt; &lt;/P&gt;&lt;P&gt;%macro pat(patt=);&lt;/P&gt;&lt;P&gt;%do &amp;amp;pt=1 %to &amp;amp;patt;&amp;nbsp; /*** I NEED THE BASELINE COVARIATE FOR AGE=0, So for each data below new_1, new_2, I want the first to set the covariates=Pattern_1, covariates=Pattern_2*/ &lt;/P&gt;&lt;P&gt;data Pattern_&amp;amp;pt;&lt;/P&gt;&lt;P&gt;age=0;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend pat;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO DO_BRANCH(replicates=);&lt;/P&gt;&lt;P&gt;%do u=1 %to &amp;amp;replicates;&lt;/P&gt;&lt;P&gt;proc surveyselect data=neww&amp;nbsp; method = urs sampsize = 141 OUTHITS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reps=1 seed=1234100 out=new_&amp;amp;u;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%pat(patt=20);&lt;/P&gt;&lt;P&gt;ods trace on /listing;&lt;/P&gt;&lt;P&gt;ods graphics on;&lt;/P&gt;&lt;P&gt;ods output ParameterEstimates=CPHH_&amp;amp;u;&lt;/P&gt;&lt;P&gt;proc phreg data=new_&amp;amp;u ;&lt;/P&gt;&lt;P&gt;model monset*obs(0)=age;&lt;/P&gt;&lt;P&gt;*baseline out=survs survival= survival;&lt;/P&gt;&lt;P&gt;baseline covariates=Pattern_&amp;amp;pt out=survs_&amp;amp;u survival= survival;&amp;nbsp; /* The issue is that SAS doesnot seem to understand that I want covariates=pattern_1 when running the data set new_1 and covariates=pattern_2 for new_2*/&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods trace off;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%MEND DO_BRANCH;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%DO_BRANCH(replicates=20);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;THIS CODE RUNS BUT NOT THE ABOVE. Below is what I want the macro to do for each case.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data Pattern;&lt;/P&gt;&lt;P&gt; Age=0;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods trace on /listing;&lt;/P&gt;&lt;P&gt;ods graphics on;&lt;/P&gt;&lt;P&gt;ods output ParameterEstimates=CPHH;&lt;/P&gt;&lt;P&gt;proc phreg data=new ;&lt;/P&gt;&lt;P&gt;model monset*obs(0)=age;&lt;/P&gt;&lt;P&gt;baseline covariates=pattern out=survs survival= survival&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods trace off;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 17 Jan 2014 19:19:36 GMT</pubDate>
    <dc:creator>desireatem</dc:creator>
    <dc:date>2014-01-17T19:19:36Z</dc:date>
    <item>
      <title>Code does not work within a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145424#M28999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, I need the baseline covariates fro PHREG for each of the random sample with replacement. THis code does see to work well. The problem is with &lt;/P&gt;&lt;P&gt;baseline covariates=Pattern_&amp;amp;pt out=survs_&amp;amp;u survival= survival;.&lt;/P&gt;&lt;P&gt;NB: I need to run this within a macro because I have some matrices to compute. Or within a for loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data neww;&lt;/P&gt;&lt;P&gt; seed=-1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; alpha1 = 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta1 = 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta2=10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 141;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Age=40+(5)*rannor(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lambdaT = 0.025; *baseline hazard;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lambdaC= .03;&amp;nbsp; *heavy=0.15; *light=0.03;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; er=0+(0.01)*rannor(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = rand("WEIBULL", 0.75, lambdaT);&amp;nbsp; * time of event;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = rand("WEIBULL", 1.25, lambdaC) ;* time of censoring;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; monset = min(t, c);&amp;nbsp;&amp;nbsp;&amp;nbsp; * which came first?;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obs=(t lt c); * creating observation vaiable from censored when observeed obs=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; pibflr= alpha1 + beta1*t + beta2*Age +er;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let pt=pt; &lt;/P&gt;&lt;P&gt;%macro pat(patt=);&lt;/P&gt;&lt;P&gt;%do &amp;amp;pt=1 %to &amp;amp;patt;&amp;nbsp; /*** I NEED THE BASELINE COVARIATE FOR AGE=0, So for each data below new_1, new_2, I want the first to set the covariates=Pattern_1, covariates=Pattern_2*/ &lt;/P&gt;&lt;P&gt;data Pattern_&amp;amp;pt;&lt;/P&gt;&lt;P&gt;age=0;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend pat;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO DO_BRANCH(replicates=);&lt;/P&gt;&lt;P&gt;%do u=1 %to &amp;amp;replicates;&lt;/P&gt;&lt;P&gt;proc surveyselect data=neww&amp;nbsp; method = urs sampsize = 141 OUTHITS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reps=1 seed=1234100 out=new_&amp;amp;u;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%pat(patt=20);&lt;/P&gt;&lt;P&gt;ods trace on /listing;&lt;/P&gt;&lt;P&gt;ods graphics on;&lt;/P&gt;&lt;P&gt;ods output ParameterEstimates=CPHH_&amp;amp;u;&lt;/P&gt;&lt;P&gt;proc phreg data=new_&amp;amp;u ;&lt;/P&gt;&lt;P&gt;model monset*obs(0)=age;&lt;/P&gt;&lt;P&gt;*baseline out=survs survival= survival;&lt;/P&gt;&lt;P&gt;baseline covariates=Pattern_&amp;amp;pt out=survs_&amp;amp;u survival= survival;&amp;nbsp; /* The issue is that SAS doesnot seem to understand that I want covariates=pattern_1 when running the data set new_1 and covariates=pattern_2 for new_2*/&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods trace off;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%MEND DO_BRANCH;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%DO_BRANCH(replicates=20);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;THIS CODE RUNS BUT NOT THE ABOVE. Below is what I want the macro to do for each case.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data Pattern;&lt;/P&gt;&lt;P&gt; Age=0;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods trace on /listing;&lt;/P&gt;&lt;P&gt;ods graphics on;&lt;/P&gt;&lt;P&gt;ods output ParameterEstimates=CPHH;&lt;/P&gt;&lt;P&gt;proc phreg data=new ;&lt;/P&gt;&lt;P&gt;model monset*obs(0)=age;&lt;/P&gt;&lt;P&gt;baseline covariates=pattern out=survs survival= survival&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods trace off;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Jan 2014 19:19:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145424#M28999</guid>
      <dc:creator>desireatem</dc:creator>
      <dc:date>2014-01-17T19:19:36Z</dc:date>
    </item>
    <item>
      <title>Re: Code does not work within a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145425#M29000</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are you getting errors or identical output?&lt;/P&gt;&lt;P&gt;If it is identical output it is likely because the seed value in the surveyselect is selecting the same records for each dataset.&lt;/P&gt;&lt;P&gt;Try doing a proc compare on two of the new_ datasets.&lt;/P&gt;&lt;P&gt;A correction would be to increment the seed value using your U macro variable.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Jan 2014 19:26:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145425#M29000</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2014-01-17T19:26:55Z</dc:date>
    </item>
    <item>
      <title>Re: Code does not work within a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145426#M29001</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I corrected the proc surveyselect, the data set are different but the code is not working;&lt;/P&gt;&lt;P&gt;data neww;&lt;/P&gt;&lt;P&gt; seed=-1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; alpha1 = 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta1 = 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; beta2=10;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do i = 1 to 141;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Age=40+(5)*rannor(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lambdaT = 0.025; *baseline hazard;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lambdaC= .03;&amp;nbsp; *heavy=0.15; *light=0.03;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; er=0+(0.01)*rannor(1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = rand("WEIBULL", 0.75, lambdaT);&amp;nbsp; * time of event;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = rand("WEIBULL", 1.25, lambdaC) ;* time of censoring;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; monset = min(t, c);&amp;nbsp;&amp;nbsp;&amp;nbsp; * which came first?;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obs=(t lt c); * creating observation vaiable from censored when observeed obs=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; pibflr= alpha1 + beta1*t + beta2*Age +er;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let pt=pt; &lt;/P&gt;&lt;P&gt;%macro pat(patt=);&lt;/P&gt;&lt;P&gt;%do &amp;amp;pt=1 %to &amp;amp;patt;&amp;nbsp; /*** I NEED THE BASELINE COVARIATE FOR AGE=0, So for each data below new_1, new_2, I want the first to set the covariates=Pattern_1, covariates=Pattern_2*/ &lt;/P&gt;&lt;P&gt;data Pattern_&amp;amp;pt;&lt;/P&gt;&lt;P&gt;age=0;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend pat;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%MACRO DO_BRANCH(replicates=);&lt;/P&gt;&lt;P&gt;%do u=1 %to &amp;amp;replicates;&lt;/P&gt;&lt;P&gt;proc surveyselect data=neww&amp;nbsp; method = urs sampsize = 141 OUTHITS&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reps=1 samprate=1&amp;nbsp; seed=-1 out=new_&amp;amp;u;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%pat(patt=2);&lt;/P&gt;&lt;P&gt;ods trace on /listing;&lt;/P&gt;&lt;P&gt;ods graphics on;&lt;/P&gt;&lt;P&gt;ods output ParameterEstimates=CPHH_&amp;amp;u;&lt;/P&gt;&lt;P&gt;proc phreg data=new_&amp;amp;u ;&lt;/P&gt;&lt;P&gt;model monset*obs(0)=age;&lt;/P&gt;&lt;P&gt;*baseline out=survs survival= survival;&lt;/P&gt;&lt;P&gt;baseline covariates=Pattern_&amp;amp;pt out=survs_&amp;amp;u survival= survival;&amp;nbsp; /* The issue is that SAS doesnot seem to understand that I want covariates=pattern_1 when running the data set new_1 and covariates=pattern_2 for new_2*/&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods trace off;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%MEND DO_BRANCH;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%DO_BRANCH(replicates=2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc compare base=New_1 compare=New_2 printall;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; title 'Comparing Two Data Sets: Full Report';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data Pattern;&lt;/P&gt;&lt;P&gt; Age=0;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ods trace on /listing;&lt;/P&gt;&lt;P&gt;ods graphics on;&lt;/P&gt;&lt;P&gt;ods output ParameterEstimates=CPHH;&lt;/P&gt;&lt;P&gt;proc phreg data=neww;&lt;/P&gt;&lt;P&gt;model monset*obs(0)=age;&lt;/P&gt;&lt;P&gt;baseline covariates=pattern out=survs survival= survival&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;ods trace off;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Jan 2014 20:12:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145426#M29001</guid>
      <dc:creator>desireatem</dc:creator>
      <dc:date>2014-01-17T20:12:08Z</dc:date>
    </item>
    <item>
      <title>Re: Code does not work within a macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145427#M29002</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Does this do what you expect it do?&lt;/P&gt;&lt;P&gt;Test it %put &amp;amp;pt afterwards to see what it resolves to:&lt;/P&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;
&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;/P&gt;
&lt;P&gt;%let pt=pt; &lt;/P&gt;
&lt;P&gt;&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will create a set of pattern_1, pattern_2 datasets that are identical. Why? There is no point to this, simply have one pattern dataset. &lt;/P&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote" modifiedtitle="true"&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%macro pat(patt=);&lt;/P&gt;
&lt;P&gt;%do &amp;amp;pt=1 %to &amp;amp;patt; &lt;/P&gt;
&lt;P&gt;data Pattern_&amp;amp;pt;&lt;/P&gt;
&lt;P&gt;age=0;&lt;/P&gt;
&lt;P&gt;output;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;%mend pat;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote" modifiedtitle="true"&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%MACRO DO_BRANCH(replicates=);&lt;/P&gt;
&lt;P&gt;%do u=1 %to &amp;amp;replicates;&lt;/P&gt;
&lt;P&gt;proc surveyselect data=neww&amp;nbsp; method = urs sampsize = 141 OUTHITS&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reps=1 samprate=1&amp;nbsp; seed=-1 out=new_&amp;amp;u;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%pat(patt=2);&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt; /*this isn't needed, see the above comments regarding why*/&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;ods trace on /listing;&lt;/P&gt;
&lt;P&gt;ods graphics on;&lt;/P&gt;
&lt;P&gt;ods output ParameterEstimates=CPHH_&amp;amp;u;&lt;/P&gt;
&lt;P&gt;proc phreg data=new_&amp;amp;u ;&lt;/P&gt;
&lt;P&gt;model monset*obs(0)=age;&lt;/P&gt;
&lt;P&gt;*baseline out=survs survival= survival;&lt;/P&gt;
&lt;P&gt;baseline covariates=Pattern_&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt;&amp;amp;pt&lt;/STRONG&gt;&lt;/SPAN&gt; out=survs_&amp;amp;u survival= survival;&amp;nbsp; /* The issue is that SAS doesnot seem to understand that I want covariates=pattern_1 when running the data set new_1 and covariates=pattern_2 for new_2*/&lt;/P&gt;
&lt;P&gt;&lt;STRONG style="color: #ff0000;"&gt;/*Does macro variable &amp;amp;pt exist here, and is it what you want, from the initial question?*/&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;ods trace off;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;%MEND DO_BRANCH;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;%DO_BRANCH(replicates=2);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;STRONG&gt; /*Why compare your random samples?*/&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;proc compare base=New_1 compare=New_2 printall;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; title 'Comparing Two Data Sets: Full Report';&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Jan 2014 23:19:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Code-does-not-work-within-a-macro/m-p/145427#M29002</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-01-17T23:19:14Z</dc:date>
    </item>
  </channel>
</rss>

