[prev in list] [next in list] [prev in thread] [next in thread] 

List:       sas-l
Subject:    Re: word search to create a new variable
From:       Stanford Mwasongwe <smwasongwe () GMAIL ! COM>
Date:       2020-09-30 19:16:37
Message-ID: CAAfzsF5a8UVqOKfh5=9doCwYgO2tVxnB=c71bEFQh4LG7S4wEQ () mail ! gmail ! com
[Download RAW message or body]

Hey all,
So, I end up using an index function as follows, not very efficient but it
save the day
IF OUTBREAKNAME ^= '' & OUTBREAKIND = 1 THEN DO;
IF INDEX(UPCASE(OUTBREAKNAME),'NURSING HOME') OR
INDEX(UPCASE(OUTBREAKNAME),'SKILLED NURSING FACILITY') OR
INDEX(UPCASE(OUTBREAKNAME),'ICF-IID') OR
INDEX(UPCASE(OUTBREAKNAME),'ICF-IID') OR
INDEX(UPCASE(OUTBREAKNAME),'ASSISTED LIVING') OR
INDEX(UPCASE(OUTBREAKNAME),'ICF/IID') OR
INDEX(UPCASE(OUTBREAKNAME),'PERSONAL CARE HOME')    > 0 THEN OUTBREAKTYPE =
1; ELSE
    IF INDEX(UPCASE(OUTBREAKNAME),'LTACH') OR
INDEX(UPCASE(OUTBREAKNAME),'PSYCH FACILITY') OR
INDEX(UPCASE(OUTBREAKNAME),'SUBSTANCE ABUSE') OR
INDEX(UPCASE(OUTBREAKNAME),'GROUP HOME') OR
INDEX(UPCASE(OUTBREAKNAME),'RESIDENTIAL SETTING') OR
INDEX(UPCASE(OUTBREAKNAME),'PSYCHIATRIC UNIT') OR
INDEX(UPCASE(OUTBREAKNAME),'SUBSTANCE ABUSE FACILITY') > 0 THEN
OUTBREAKTYPE = 2; ELSE
IF INDEX(UPCASE(OUTBREAKNAME),'BUSINESS/INDUSTRY') OR
INDEX(UPCASE(OUTBREAKNAME),'PRISON') OR
INDEX(UPCASE(OUTBREAKNAME),'HOSPITAL') OR
INDEX(UPCASE(OUTBREAKNAME),'OTHER') OR
INDEX(UPCASE(OUTBREAKNAME),'DETENTION CENTER') OR
INDEX(UPCASE(OUTBREAKNAME),'CORRECTIONAL FACILITY') OR
INDEX(UPCASE(OUTBREAKNAME),'JAIL')     OR
INDEX(UPCASE(OUTBREAKNAME),'WEDDING') >0 THEN OUTBREAKTYPE = 3;
END;
I will look back to see why PRXMATCH did not work, many thanks to this group
*Stanford*



On Tue, Sep 29, 2020 at 11:50 AM Stanford Mwasongwe <smwasongwe@gmail.com>
wrote:

> The outbreakname look like this
> GRAND GULF NUCLEAR PLANT_CLAIBORNE_COVID 2020_BUSINESS/INDUSTRY
> I found a prxmatch and try to use it as follows
> DATA NBS_EPI;
> SET EPINBS092820FINAL2;
> ***CREATING FACILITY TYPE AND OUTBREAK TYPE VARIABLES***;
> IF OUTBREAKIND = 1 & NOT MISSING(OUTBREAKNAME) THEN DO;
> IF PRXMATCH('/NURSING HOME/i',OUTBREAKNAME) THEN FACILITYTYPE = 1;
> ELSE
> IF PRXMATCH('/LTACH|PSYCH FACILITY|SUBSTANCE ABUSE|GROUP HOME|PRIVATE
> ICF/IID|RESIDENTIAL SETTING|
> PSYCHIATRIC UNIT|SUBSTANCE ABUSE FACILITY/i',OUTBREAKNAME)
> THEN FACILITYTYPE = 2; ELSE
> IF PRXMATCH('/BUSINESS/INDUSTRY|PRISON|HOSPITAL|OTHER|DETENTION
> CENTER|JAIL/i',OUTBREAKNAME)
> THEN FACILITYTYPE = 3;
> END;
> RUN;
> The following is the error
> NOTE: Argument 1 to function PRXMATCH('/LTACH|PSYCH'[12 of 144 characters
> shown],'INGALLS
>       SHIP'[12 of 80 characters shown]) at line 300 column 8 is invalid.
> NOTE: Argument 1 to function PRXMATCH('/BUSINESS/IN'[12 of 64 characters
> shown],'INGALLS SHIP'[12
>       of 80 characters shown]) at line 303 column 8 is invalid.
> WARNING: Limit set by ERRORS= option reached.  Further errors of this type
> will not be printed.
>
> I will also try the IN function as you suggested, I thought a search
> function is what I need since I am only selecting a couple words in a long
> name to create a new variable indicator.
>
> Thanks Joe
>
>
> *Stanford*
>
>
>
> On Tue, Sep 29, 2020 at 11:43 AM Joe Matise <snoopy369@gmail.com> wrote:
>
>> INDEXW does not work that way. What does OUTBREAKNAME contain?  If it's
>> just a direct match to the words then use IN:
>>
>> If outbreakname in (‘word1','word2','word3') then ....
>>
>> If not  then you need to explain what it contains, but you might need a
>> loop or something else to find the result.
>>
>> Joe
>>
>> On Sep 29, 2020, at 11:11 AM, Stanford Mwasongwe <smwasongwe@gmail.com>
>> wrote:
>>
>> 
>> Hi all,
>> I am creating a new variable with a search function, indexw, however i am
>> receiving an error for too many arguments, what other function that will
>> take more than one arguments?
>> DATA NBS_EPI;
>> SET EPINBS092820FINAL2;
>> ***CREATING FACILITY TYPE AND OUTBREAK TYPE VARIABLES***;
>> IF OUTBREAKIND = 1 & NOT MISSING(OUTBREAKNAME) THEN DO;
>> IF INDEXW(OUTBREAKNAME,'NURSING HOME') GT 0
>> THEN FACILITYTYPE = 1; ELSE
>> IF INDEXW(OUTBREAKNAME, 'LTACH','PSYCH FACILITY','SUBSTANCE
>> ABUSE','LTACH',
>> 'GROUP HOME','PRIVATE ICF/IID','RESIDENTIAL SETTING',
>> 'PSYCHIATRIC UNIT','SUBSTANCE ABUSE FACILITY') GT 0
>> THEN FACILITYTYPE = 2; ELSE
>> IF INDEXW(OUTBREAKNAME, 'BUSINESS/INDUSTRY','PRISON','HOSPITAL','OTHER',
>> 'DETENTION CENTER','JAIL') GT 0
>> THEN FACILITYTYPE = 3;
>> END;
>> RUN;
>> *Stanford*
>>
>>

[Attachment #3 (text/html)]

<div dir="ltr"><div dir="ltr"><div class="gmail_default" \
style="font-family:verdana,sans-serif">Hey all,</div><div class="gmail_default" \
style="font-family:verdana,sans-serif">So, I end up using an index function as \
follows, not very efficient but it save the day</div><div class="gmail_default"><div \
class="gmail_default"><font face="verdana, sans-serif">IF OUTBREAKNAME ^= &#39;&#39; \
&amp; OUTBREAKIND = 1 THEN DO;</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span style="white-space:pre">	</span>IF \
INDEX(UPCASE(OUTBREAKNAME),&#39;NURSING HOME&#39;) <span \
style="white-space:pre">				</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;SKILLED NURSING \
FACILITY&#39;) <span style="white-space:pre">	</span>OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;ICF-IID&#39;)<span \
style="white-space:pre">					</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;ICF-IID&#39;)<span \
style="white-space:pre">					</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;ASSISTED \
LIVING&#39;)<span style="white-space:pre">			</span>OR  </font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;ICF/IID&#39;)<span \
style="white-space:pre">					</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;PERSONAL CARE \
HOME&#39;)<span style="white-space:pre">	</span>     &gt; 0 <span \
style="white-space:pre">		</span>THEN OUTBREAKTYPE = 1; ELSE  </font></div><div \
class="gmail_default"><font face="verdana, sans-serif">      IF \
INDEX(UPCASE(OUTBREAKNAME),&#39;LTACH&#39;) <span \
style="white-space:pre">						</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span style="white-space:pre">	</span> <span \
style="white-space:pre">	</span>INDEX(UPCASE(OUTBREAKNAME),&#39;PSYCH FACILITY&#39;) \
<span style="white-space:pre">			</span>OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">	</span> <span \
style="white-space:pre">	</span>INDEX(UPCASE(OUTBREAKNAME),&#39;SUBSTANCE ABUSE&#39;) \
<span style="white-space:pre">			</span>OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">	</span> <span \
style="white-space:pre">	</span>INDEX(UPCASE(OUTBREAKNAME),&#39;GROUP HOME&#39;)<span \
style="white-space:pre">				</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span style="white-space:pre">	</span> <span \
style="white-space:pre">	</span>INDEX(UPCASE(OUTBREAKNAME),&#39;RESIDENTIAL \
SETTING&#39;) <span style="white-space:pre">		</span>OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">	</span> <span \
style="white-space:pre">	</span>INDEX(UPCASE(OUTBREAKNAME),&#39;PSYCHIATRIC \
UNIT&#39;)<span style="white-space:pre">			</span>OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">	</span> <span \
style="white-space:pre">	</span>INDEX(UPCASE(OUTBREAKNAME),&#39;SUBSTANCE ABUSE \
FACILITY&#39;) &gt; 0 <span style="white-space:pre">		</span>THEN OUTBREAKTYPE = 2; \
ELSE</font></div><div class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">	</span>IF \
INDEX(UPCASE(OUTBREAKNAME),&#39;BUSINESS/INDUSTRY&#39;)<span \
style="white-space:pre">			</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;PRISON&#39;)<span \
style="white-space:pre">					</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;HOSPITAL&#39;)<span \
style="white-space:pre">					</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;OTHER&#39;)<span \
style="white-space:pre">						</span>OR</font></div><div class="gmail_default"><font \
face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;DETENTION \
CENTER&#39;)<span style="white-space:pre">			</span>OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;CORRECTIONAL \
FACILITY&#39;)<span style="white-space:pre">		</span>OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;JAIL&#39;)<span \
style="white-space:pre">					</span>      OR</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre">		</span>INDEX(UPCASE(OUTBREAKNAME),&#39;WEDDING&#39;)<span \
style="white-space:pre">					</span>&gt;0<span style="white-space:pre">	</span> <span \
style="white-space:pre">	</span>THEN OUTBREAKTYPE = 3;</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">END;</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">I will look back to see why \
PRXMATCH did not work, many thanks to this group</font></div></div><div><div \
dir="ltr" class="gmail_signature"><div dir="ltr"><div><span \
style="font-size:x-small"><font size="2"><font><span style="font-size:10pt"><font \
face="bookman old style, new york, times, serif" \
color="#444444"><b>Stanford</b></font></span></font></font></span></div><div><br></div></div></div></div><br></div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 29, 2020 at 11:50 \
AM Stanford Mwasongwe &lt;<a \
href="mailto:smwasongwe@gmail.com">smwasongwe@gmail.com</a>&gt; \
wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px \
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div \
dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default"><font face="arial, \
sans-serif">The outbreakname look like this  </font></div><div \
class="gmail_default">GRAND GULF NUCLEAR PLANT_CLAIBORNE_COVID \
2020_BUSINESS/INDUSTRY<font face="arial, sans-serif"><br></font></div><div \
class="gmail_default">I found a prxmatch and try to use it as follows</div><div \
class="gmail_default"><div class="gmail_default">DATA NBS_EPI;</div><div \
class="gmail_default"><span style="white-space:pre-wrap">	</span>SET \
EPINBS092820FINAL2;</div><div class="gmail_default">***CREATING FACILITY TYPE AND \
OUTBREAK TYPE VARIABLES***;</div><div class="gmail_default">IF OUTBREAKIND = 1 &amp; \
NOT MISSING(OUTBREAKNAME) THEN DO;</div><div class="gmail_default"><span \
style="white-space:pre-wrap">	</span>IF PRXMATCH(&#39;/NURSING \
HOME/i&#39;,OUTBREAKNAME) THEN FACILITYTYPE = 1;</div><div \
class="gmail_default">ELSE</div><div class="gmail_default"><span \
style="white-space:pre-wrap">	</span>IF PRXMATCH(&#39;/LTACH|PSYCH FACILITY|SUBSTANCE \
ABUSE|GROUP HOME|PRIVATE ICF/IID|RESIDENTIAL SETTING|</div><div \
class="gmail_default"><span style="white-space:pre-wrap">				</span>PSYCHIATRIC \
UNIT|SUBSTANCE ABUSE FACILITY/i&#39;,OUTBREAKNAME)</div><div \
class="gmail_default"><span style="white-space:pre-wrap">				</span>THEN FACILITYTYPE \
= 2; ELSE</div><div class="gmail_default"><span \
style="white-space:pre-wrap">	</span>IF \
PRXMATCH(&#39;/BUSINESS/INDUSTRY|PRISON|HOSPITAL|OTHER|DETENTION \
CENTER|JAIL/i&#39;,OUTBREAKNAME)  </div><div class="gmail_default"><span \
style="white-space:pre-wrap">				</span>THEN FACILITYTYPE = 3;</div><div \
class="gmail_default">END;</div><div class="gmail_default">RUN;  </div><div \
class="gmail_default">The following is the error</div><div class="gmail_default"><div \
class="gmail_default">NOTE: Argument 1 to function PRXMATCH(&#39;/LTACH|PSYCH&#39;[12 \
of 144 characters shown],&#39;INGALLS</div><div class="gmail_default">         \
SHIP&#39;[12 of 80 characters shown]) at line 300 column 8 is invalid.</div><div \
class="gmail_default">NOTE: Argument 1 to function PRXMATCH(&#39;/BUSINESS/IN&#39;[12 \
of 64 characters shown],&#39;INGALLS SHIP&#39;[12</div><div class="gmail_default">    \
of 80 characters shown]) at line 303 column 8 is invalid.</div><div \
class="gmail_default">WARNING: Limit set by ERRORS= option reached.   Further errors \
of this type will not be printed.</div><div><br></div><div>I will also try the IN \
function as you suggested, I thought a search function is what I need since I am only \
selecting a couple words in a long name to create a new variable \
indicator.</div><div><br></div><div>Thanks \
Joe</div><div><br></div><div><br></div></div></div><div><div dir="ltr"><div \
dir="ltr"><div><span style="font-size:x-small"><font size="2"><font><span \
style="font-size:10pt"><font face="bookman old style, new york, times, serif" \
color="#444444"><b>Stanford</b></font></span></font></font></span></div><div><br></div></div></div></div><br></div></div></div></div><br><div \
class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 29, 2020 at 11:43 \
AM Joe Matise &lt;<a href="mailto:snoopy369@gmail.com" \
target="_blank">snoopy369@gmail.com</a>&gt; wrote:<br></div><blockquote \
class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid \
rgb(204,204,204);padding-left:1ex"><div dir="auto">INDEXW does not work that way. \
What does OUTBREAKNAME contain?   If it's just a direct match to the words then use \
IN:  <div><br></div><div>If outbreakname in (‘word1','word2','word3') then \
....</div><div><br></div><div>If not   then you need to explain what it contains, but \
you might need a loop or something else to find the result.  <br><br><div \
dir="ltr">Joe</div><div dir="ltr"><br><blockquote type="cite">On Sep 29, 2020, at \
11:11 AM, Stanford Mwasongwe &lt;<a href="mailto:smwasongwe@gmail.com" \
target="_blank">smwasongwe@gmail.com</a>&gt; \
wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr"><div \
dir="ltr"><div dir="ltr"><div class="gmail_default" \
style="font-family:verdana,sans-serif">Hi all,</div><div class="gmail_default" \
style="font-family:verdana,sans-serif">I am creating a new variable with a search \
function, indexw, however i am receiving an error for too many arguments, what other \
function that will take more than one arguments?</div><div class="gmail_default"><div \
class="gmail_default"><font face="verdana, sans-serif">DATA NBS_EPI;</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">	</span>SET EPINBS092820FINAL2;</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">***CREATING FACILITY TYPE AND \
OUTBREAK TYPE VARIABLES***;</font></div><div class="gmail_default"><font \
face="verdana, sans-serif">IF OUTBREAKIND = 1 &amp; NOT MISSING(OUTBREAKNAME) THEN \
DO;</font></div><div class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">	</span>IF INDEXW(OUTBREAKNAME,&#39;NURSING HOME&#39;) \
GT 0  </font></div><div class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">				</span>THEN FACILITYTYPE = 1; ELSE</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">	</span>IF INDEXW(OUTBREAKNAME,<span \
style="white-space:pre-wrap">	</span>&#39;LTACH&#39;,&#39;PSYCH \
FACILITY&#39;,&#39;SUBSTANCE ABUSE&#39;,&#39;LTACH&#39;,</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">							</span>&#39;GROUP HOME&#39;,&#39;PRIVATE \
ICF/IID&#39;,&#39;RESIDENTIAL SETTING&#39;,</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">							</span>&#39;PSYCHIATRIC UNIT&#39;,&#39;SUBSTANCE \
ABUSE FACILITY&#39;) GT 0</font></div><div class="gmail_default"><font face="verdana, \
sans-serif"><span style="white-space:pre-wrap">				</span>THEN FACILITYTYPE = 2; \
ELSE</font></div><div class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">	</span>IF INDEXW(OUTBREAKNAME, \
&#39;BUSINESS/INDUSTRY&#39;,&#39;PRISON&#39;,&#39;HOSPITAL&#39;,&#39;OTHER&#39;,</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">							</span>&#39;DETENTION CENTER&#39;,&#39;JAIL&#39;) \
GT 0</font></div><div class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap">				</span>THEN FACILITYTYPE = 3;</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">END;</font></div><div \
class="gmail_default"><font face="verdana, sans-serif">RUN;  \
</font></div></div><div><div dir="ltr"><div dir="ltr"><div><span \
style="font-size:x-small"><font size="2"><font><span style="font-size:10pt"><font \
face="bookman old style, new york, times, serif" \
color="#444444"><b>Stanford</b></font></span></font></font></span></div><div><br></div></div></div></div></div></div>
 </div></blockquote></div></div></blockquote></div>
</blockquote></div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic