<?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: Uninitialized variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528849#M144385</link>
    <description>&lt;P&gt;Well, let's take a look at the first one, notDone.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It appears in the code to be used, not calculated, but if its uninitialized that means it's not in the input data set. Most likely you have the variable name incorrect for some reason or are using the incorrect source data set.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So I would check your input data sets where the variable NotDOne should exist and verify if it first exists.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can run a proc contents on your input data set to see the names. Look at the labels and variable names and make sure you're using the variable name, not the label.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc contents data=adverse;
proc contents data=drugadm;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/237206"&gt;@Patelbb&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was running this piece of code that I was given and I keep getting warnings that say a few of the variables are uninitialized. I tried a few things to correct this but nothing worked for me. I was wondering if anyone would have any ideas on this. Any help is appreciated.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;318&amp;nbsp; data adverse2(keep= sitenum patnum aename aesev fromdtc todtc sday);&lt;BR /&gt;319&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge adverse(in=inae)&lt;BR /&gt;320&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drugadm(in=infdrg);&lt;BR /&gt;321&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **drgadm (in=infdrg)**ERROR;&lt;BR /&gt;322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by usubjid;&lt;BR /&gt;323&lt;BR /&gt;324&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Only keep the records that are in AE */&lt;BR /&gt;325&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if inae;&lt;BR /&gt;326&lt;BR /&gt;327&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Only process these steps on the records that have an actual event, use */&lt;BR /&gt;328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* none box for determining this */&lt;BR /&gt;329&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;notdone&lt;/STRONG&gt; &lt;/FONT&gt;ne 1) then do;&lt;BR /&gt;330&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; **ERROR;&lt;BR /&gt;331&lt;BR /&gt;332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create Character Date since the date can be partial */&lt;BR /&gt;333&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If Date is unknown then use UU to represent it */&lt;BR /&gt;334&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtdd eq .) then fday = 'UU' ;&lt;BR /&gt;335&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fday = put(fromdtdd,z2.);&lt;BR /&gt;336&lt;BR /&gt;337&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtmm eq .) then fmon = 'UU';&lt;BR /&gt;338&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fmon = put(fromdtmm,z2.);&lt;BR /&gt;339&lt;BR /&gt;340&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtyy eq .) then fyer = 'UUUU';&lt;BR /&gt;341&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fyer = put(fromdtyy, 4.);&lt;BR /&gt;342&lt;BR /&gt;343&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create character Onset date */&lt;BR /&gt;344&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fromdtc = fyer || '/' || fmon || '/' || fday;&lt;BR /&gt;345&lt;BR /&gt;346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the whole date is unknown then have it say so */&lt;BR /&gt;347&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtc eq 'UUUU/UU/UU') then fromdtc = 'Unknown';&lt;BR /&gt;348&lt;BR /&gt;349&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Do the same thing for Stop date */&lt;BR /&gt;350&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtdd eq .) then tday = 'UU' ;&lt;BR /&gt;351&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tday = put(todtdd,z2.);&lt;BR /&gt;352&lt;BR /&gt;353&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtmm eq .) then tmon = 'UU';&lt;BR /&gt;354&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tmon = put(todtmm,z2.);&lt;BR /&gt;355&lt;BR /&gt;356&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtyy eq .) then tyer = 'UUUU';&lt;BR /&gt;357&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tyer = put(todtyy, 4.);&lt;BR /&gt;358&lt;BR /&gt;359&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create character End date */&lt;BR /&gt;360&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; todtc = tyer || '/' || tmon || '/' || tday;&lt;BR /&gt;361&lt;BR /&gt;362&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the whole date is unknown then have it say so */&lt;BR /&gt;363&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtc eq 'UUUU/UU/UU') then todtc = 'Unknown';&lt;BR /&gt;364&lt;BR /&gt;365&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the adverse Event is ongoing then overwrite the unknown piece*/&lt;BR /&gt;366&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (aeong eq 1) then todtc = 'Ongoing';&lt;BR /&gt;367&lt;BR /&gt;368&lt;BR /&gt;369&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* We have a character date...but now lets use the Numeric date to see when the event&lt;BR /&gt;370&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; occurred related to the start of study medication */&lt;BR /&gt;371&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* We can only do this for valid dates, not partial */&lt;BR /&gt;372&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdate gt .Z) then sday = (fromdate - fdrgdate) +1;&lt;BR /&gt;373&amp;nbsp; run;&lt;/DIV&gt;
&lt;DIV&gt;NOTE: Variable&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt; notdone&lt;/STRONG&gt;&lt;/FONT&gt; is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtdd is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtmm is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtyy is uninitialized.&lt;BR /&gt;NOTE: Variable todtdd is uninitialized.&lt;BR /&gt;NOTE: Variable todtmm is uninitialized.&lt;BR /&gt;NOTE: Variable todtyy is uninitialized.&lt;BR /&gt;NOTE: Variable aeong is uninitialized.&lt;BR /&gt;NOTE: Variable fromdate is uninitialized.&lt;BR /&gt;NOTE: Variable fdrgdate is uninitialized.&lt;BR /&gt;WARNING: The variable sitenum in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;WARNING: The variable patnum in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;WARNING: The variable aename in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;NOTE: There were 297 observations read from the data set WORK.ADVERSE.&lt;BR /&gt;NOTE: There were 77 observations read from the data set WORK.DRUGADM.&lt;BR /&gt;NOTE: The data set WORK.ADVERSE2 has 297 observations and 4 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.07 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.06 seconds&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 21 Jan 2019 18:36:43 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2019-01-21T18:36:43Z</dc:date>
    <item>
      <title>Uninitialized variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528846#M144382</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was running this piece of code that I was given and I keep getting warnings that say a few of the variables are uninitialized. I tried a few things to correct this but nothing worked for me. I was wondering if anyone would have any ideas on this. Any help is appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;318&amp;nbsp; data adverse2(keep= sitenum patnum aename aesev fromdtc todtc sday);&lt;BR /&gt;319&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge adverse(in=inae)&lt;BR /&gt;320&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drugadm(in=infdrg);&lt;BR /&gt;321&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **drgadm (in=infdrg)**ERROR;&lt;BR /&gt;322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by usubjid;&lt;BR /&gt;323&lt;BR /&gt;324&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Only keep the records that are in AE */&lt;BR /&gt;325&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if inae;&lt;BR /&gt;326&lt;BR /&gt;327&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Only process these steps on the records that have an actual event, use */&lt;BR /&gt;328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* none box for determining this */&lt;BR /&gt;329&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (notdone ne 1) then do;&lt;BR /&gt;330&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; **ERROR;&lt;BR /&gt;331&lt;BR /&gt;332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create Character Date since the date can be partial */&lt;BR /&gt;333&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If Date is unknown then use UU to represent it */&lt;BR /&gt;334&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtdd eq .) then fday = 'UU' ;&lt;BR /&gt;335&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fday = put(fromdtdd,z2.);&lt;BR /&gt;336&lt;BR /&gt;337&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtmm eq .) then fmon = 'UU';&lt;BR /&gt;338&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fmon = put(fromdtmm,z2.);&lt;BR /&gt;339&lt;BR /&gt;340&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtyy eq .) then fyer = 'UUUU';&lt;BR /&gt;341&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fyer = put(fromdtyy, 4.);&lt;BR /&gt;342&lt;BR /&gt;343&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create character Onset date */&lt;BR /&gt;344&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fromdtc = fyer || '/' || fmon || '/' || fday;&lt;BR /&gt;345&lt;BR /&gt;346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the whole date is unknown then have it say so */&lt;BR /&gt;347&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtc eq 'UUUU/UU/UU') then fromdtc = 'Unknown';&lt;BR /&gt;348&lt;BR /&gt;349&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Do the same thing for Stop date */&lt;BR /&gt;350&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtdd eq .) then tday = 'UU' ;&lt;BR /&gt;351&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tday = put(todtdd,z2.);&lt;BR /&gt;352&lt;BR /&gt;353&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtmm eq .) then tmon = 'UU';&lt;BR /&gt;354&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tmon = put(todtmm,z2.);&lt;BR /&gt;355&lt;BR /&gt;356&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtyy eq .) then tyer = 'UUUU';&lt;BR /&gt;357&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tyer = put(todtyy, 4.);&lt;BR /&gt;358&lt;BR /&gt;359&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create character End date */&lt;BR /&gt;360&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; todtc = tyer || '/' || tmon || '/' || tday;&lt;BR /&gt;361&lt;BR /&gt;362&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the whole date is unknown then have it say so */&lt;BR /&gt;363&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtc eq 'UUUU/UU/UU') then todtc = 'Unknown';&lt;BR /&gt;364&lt;BR /&gt;365&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the adverse Event is ongoing then overwrite the unknown piece*/&lt;BR /&gt;366&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (aeong eq 1) then todtc = 'Ongoing';&lt;BR /&gt;367&lt;BR /&gt;368&lt;BR /&gt;369&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* We have a character date...but now lets use the Numeric date to see when the event&lt;BR /&gt;370&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; occurred related to the start of study medication */&lt;BR /&gt;371&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* We can only do this for valid dates, not partial */&lt;BR /&gt;372&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdate gt .Z) then sday = (fromdate - fdrgdate) +1;&lt;BR /&gt;373&amp;nbsp; run;&lt;/DIV&gt;&lt;DIV&gt;NOTE: Variable notdone is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtdd is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtmm is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtyy is uninitialized.&lt;BR /&gt;NOTE: Variable todtdd is uninitialized.&lt;BR /&gt;NOTE: Variable todtmm is uninitialized.&lt;BR /&gt;NOTE: Variable todtyy is uninitialized.&lt;BR /&gt;NOTE: Variable aeong is uninitialized.&lt;BR /&gt;NOTE: Variable fromdate is uninitialized.&lt;BR /&gt;NOTE: Variable fdrgdate is uninitialized.&lt;BR /&gt;WARNING: The variable sitenum in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;WARNING: The variable patnum in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;WARNING: The variable aename in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;NOTE: There were 297 observations read from the data set WORK.ADVERSE.&lt;BR /&gt;NOTE: There were 77 observations read from the data set WORK.DRUGADM.&lt;BR /&gt;NOTE: The data set WORK.ADVERSE2 has 297 observations and 4 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.07 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.06 seconds&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Mon, 21 Jan 2019 18:32:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528846#M144382</guid>
      <dc:creator>Patelbb</dc:creator>
      <dc:date>2019-01-21T18:32:08Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528849#M144385</link>
      <description>&lt;P&gt;Well, let's take a look at the first one, notDone.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It appears in the code to be used, not calculated, but if its uninitialized that means it's not in the input data set. Most likely you have the variable name incorrect for some reason or are using the incorrect source data set.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So I would check your input data sets where the variable NotDOne should exist and verify if it first exists.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can run a proc contents on your input data set to see the names. Look at the labels and variable names and make sure you're using the variable name, not the label.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc contents data=adverse;
proc contents data=drugadm;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/237206"&gt;@Patelbb&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I was running this piece of code that I was given and I keep getting warnings that say a few of the variables are uninitialized. I tried a few things to correct this but nothing worked for me. I was wondering if anyone would have any ideas on this. Any help is appreciated.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;318&amp;nbsp; data adverse2(keep= sitenum patnum aename aesev fromdtc todtc sday);&lt;BR /&gt;319&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge adverse(in=inae)&lt;BR /&gt;320&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drugadm(in=infdrg);&lt;BR /&gt;321&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **drgadm (in=infdrg)**ERROR;&lt;BR /&gt;322&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; by usubjid;&lt;BR /&gt;323&lt;BR /&gt;324&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Only keep the records that are in AE */&lt;BR /&gt;325&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if inae;&lt;BR /&gt;326&lt;BR /&gt;327&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Only process these steps on the records that have an actual event, use */&lt;BR /&gt;328&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* none box for determining this */&lt;BR /&gt;329&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;notdone&lt;/STRONG&gt; &lt;/FONT&gt;ne 1) then do;&lt;BR /&gt;330&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end; **ERROR;&lt;BR /&gt;331&lt;BR /&gt;332&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create Character Date since the date can be partial */&lt;BR /&gt;333&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If Date is unknown then use UU to represent it */&lt;BR /&gt;334&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtdd eq .) then fday = 'UU' ;&lt;BR /&gt;335&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fday = put(fromdtdd,z2.);&lt;BR /&gt;336&lt;BR /&gt;337&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtmm eq .) then fmon = 'UU';&lt;BR /&gt;338&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fmon = put(fromdtmm,z2.);&lt;BR /&gt;339&lt;BR /&gt;340&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtyy eq .) then fyer = 'UUUU';&lt;BR /&gt;341&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else fyer = put(fromdtyy, 4.);&lt;BR /&gt;342&lt;BR /&gt;343&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create character Onset date */&lt;BR /&gt;344&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fromdtc = fyer || '/' || fmon || '/' || fday;&lt;BR /&gt;345&lt;BR /&gt;346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the whole date is unknown then have it say so */&lt;BR /&gt;347&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdtc eq 'UUUU/UU/UU') then fromdtc = 'Unknown';&lt;BR /&gt;348&lt;BR /&gt;349&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Do the same thing for Stop date */&lt;BR /&gt;350&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtdd eq .) then tday = 'UU' ;&lt;BR /&gt;351&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tday = put(todtdd,z2.);&lt;BR /&gt;352&lt;BR /&gt;353&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtmm eq .) then tmon = 'UU';&lt;BR /&gt;354&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tmon = put(todtmm,z2.);&lt;BR /&gt;355&lt;BR /&gt;356&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtyy eq .) then tyer = 'UUUU';&lt;BR /&gt;357&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else tyer = put(todtyy, 4.);&lt;BR /&gt;358&lt;BR /&gt;359&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Create character End date */&lt;BR /&gt;360&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; todtc = tyer || '/' || tmon || '/' || tday;&lt;BR /&gt;361&lt;BR /&gt;362&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the whole date is unknown then have it say so */&lt;BR /&gt;363&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (todtc eq 'UUUU/UU/UU') then todtc = 'Unknown';&lt;BR /&gt;364&lt;BR /&gt;365&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* If the adverse Event is ongoing then overwrite the unknown piece*/&lt;BR /&gt;366&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (aeong eq 1) then todtc = 'Ongoing';&lt;BR /&gt;367&lt;BR /&gt;368&lt;BR /&gt;369&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* We have a character date...but now lets use the Numeric date to see when the event&lt;BR /&gt;370&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; occurred related to the start of study medication */&lt;BR /&gt;371&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* We can only do this for valid dates, not partial */&lt;BR /&gt;372&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fromdate gt .Z) then sday = (fromdate - fdrgdate) +1;&lt;BR /&gt;373&amp;nbsp; run;&lt;/DIV&gt;
&lt;DIV&gt;NOTE: Variable&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt; notdone&lt;/STRONG&gt;&lt;/FONT&gt; is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtdd is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtmm is uninitialized.&lt;BR /&gt;NOTE: Variable fromdtyy is uninitialized.&lt;BR /&gt;NOTE: Variable todtdd is uninitialized.&lt;BR /&gt;NOTE: Variable todtmm is uninitialized.&lt;BR /&gt;NOTE: Variable todtyy is uninitialized.&lt;BR /&gt;NOTE: Variable aeong is uninitialized.&lt;BR /&gt;NOTE: Variable fromdate is uninitialized.&lt;BR /&gt;NOTE: Variable fdrgdate is uninitialized.&lt;BR /&gt;WARNING: The variable sitenum in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;WARNING: The variable patnum in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;WARNING: The variable aename in the DROP, KEEP, or RENAME list has never been referenced.&lt;BR /&gt;NOTE: There were 297 observations read from the data set WORK.ADVERSE.&lt;BR /&gt;NOTE: There were 77 observations read from the data set WORK.DRUGADM.&lt;BR /&gt;NOTE: The data set WORK.ADVERSE2 has 297 observations and 4 variables.&lt;BR /&gt;NOTE: DATA statement used (Total process time):&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.07 seconds&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.06 seconds&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Jan 2019 18:36:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528849#M144385</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-01-21T18:36:43Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528862#M144395</link>
      <description>&lt;P&gt;If there was just one variable uninitialized, I would agree with&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;'s first suggestion ... maybe the variable name was spelled incorrectly.&amp;nbsp; But when 10 variables are uninitialized, it means her second suggestion is the right one.&amp;nbsp; Your incoming data sets are just plain wrong.&amp;nbsp; They are supposed to contain these 10 variables, but they don't.&amp;nbsp; Based on these messages, there is nothing to indicate anything is wrong with the program.&amp;nbsp; It's the data that has the wrong variables in it.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Jan 2019 18:56:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528862#M144395</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-01-21T18:56:22Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528866#M144399</link>
      <description>&lt;P&gt;Thank you guys for your helpful replies. I will look into the data sets and try to fix this.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Jan 2019 19:18:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528866#M144399</guid>
      <dc:creator>Patelbb</dc:creator>
      <dc:date>2019-01-21T19:18:41Z</dc:date>
    </item>
    <item>
      <title>Re: Uninitialized variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528873#M144402</link>
      <description>&lt;P&gt;Concur with all the others, a clear case for Maxim 3.&lt;/P&gt;</description>
      <pubDate>Mon, 21 Jan 2019 20:07:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Uninitialized-variables/m-p/528873#M144402</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-01-21T20:07:06Z</dc:date>
    </item>
  </channel>
</rss>

