[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 ^= '' \
& 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),'NURSING HOME') <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),'SKILLED NURSING \
FACILITY') <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),'ICF-IID')<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),'ICF-IID')<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),'ASSISTED \
LIVING')<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),'ICF/IID')<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),'PERSONAL CARE \
HOME')<span style="white-space:pre"> </span> > 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),'LTACH') <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),'PSYCH FACILITY') \
<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),'SUBSTANCE ABUSE') \
<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),'GROUP HOME')<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),'RESIDENTIAL \
SETTING') <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),'PSYCHIATRIC \
UNIT')<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),'SUBSTANCE ABUSE \
FACILITY') > 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),'BUSINESS/INDUSTRY')<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),'PRISON')<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),'HOSPITAL')<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),'OTHER')<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),'DETENTION \
CENTER')<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),'CORRECTIONAL \
FACILITY')<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),'JAIL')<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),'WEDDING')<span \
style="white-space:pre"> </span>>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 <<a \
href="mailto:smwasongwe@gmail.com">smwasongwe@gmail.com</a>> \
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 & \
NOT MISSING(OUTBREAKNAME) THEN DO;</div><div class="gmail_default"><span \
style="white-space:pre-wrap"> </span>IF PRXMATCH('/NURSING \
HOME/i',OUTBREAKNAME) THEN FACILITYTYPE = 1;</div><div \
class="gmail_default">ELSE</div><div class="gmail_default"><span \
style="white-space:pre-wrap"> </span>IF PRXMATCH('/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',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('/BUSINESS/INDUSTRY|PRISON|HOSPITAL|OTHER|DETENTION \
CENTER|JAIL/i',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('/LTACH|PSYCH'[12 \
of 144 characters shown],'INGALLS</div><div class="gmail_default"> \
SHIP'[12 of 80 characters shown]) at line 300 column 8 is invalid.</div><div \
class="gmail_default">NOTE: Argument 1 to function PRXMATCH('/BUSINESS/IN'[12 \
of 64 characters shown],'INGALLS SHIP'[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 <<a href="mailto:snoopy369@gmail.com" \
target="_blank">snoopy369@gmail.com</a>> 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 <<a href="mailto:smwasongwe@gmail.com" \
target="_blank">smwasongwe@gmail.com</a>> \
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 & 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,'NURSING HOME') \
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>'LTACH','PSYCH \
FACILITY','SUBSTANCE ABUSE','LTACH',</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap"> </span>'GROUP HOME','PRIVATE \
ICF/IID','RESIDENTIAL SETTING',</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap"> </span>'PSYCHIATRIC UNIT','SUBSTANCE \
ABUSE FACILITY') 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, \
'BUSINESS/INDUSTRY','PRISON','HOSPITAL','OTHER',</font></div><div \
class="gmail_default"><font face="verdana, sans-serif"><span \
style="white-space:pre-wrap"> </span>'DETENTION CENTER','JAIL') \
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