DATA Step, Macro, Functions and more

Cannot find the word in the string

Accepted Solution Solved
Reply
Frequent Contributor
Frequent Contributor
Posts: 82
Accepted Solution

Cannot find the word in the string

 

I am trying to find  "Paclitaxel" in the string, however I could not find it using index , and , findw , function even I only keep aplphbet and ","  .  However, I can find "carboplatin"  .    Any solution ?  Thank you very much!

 

 

test = compress(lowcase(regimen),'abcdefghijklmnopqrstuvwxyz,','k') ;

if index(test, 'paclitaxel') = 1 then pre_TAXANE = 1 ;

 

regimen

Afatinib,Carboplatin,Paclitaxel1..
Afatinib,Carboplatin,Paclitaxel Protein-Bound1..

Accepted Solutions
Solution
‎04-18-2018 10:07 AM
Super User
Posts: 22,874

Re: Cannot find the word in the string

Posted in reply to Astounding

@Astounding doesn't the previous statement lowcase everything?

 

@Ivy review the modifiers so that you can avoid listing all the alphabet in your list. I think its 'ka' to keep all alphabetic values. 

View solution in original post


All Replies
Super User
Posts: 22,874

Re: Cannot find the word in the string

INDEX returns the position, not a 0/1. Therefore your test of =1 will only be true if the word is at the exact beginning. Change your condition to test if it’s >0 instead.

 


@Ivy wrote:

 

I am trying to find  "Paclitaxel" in the string, however I could not find it using index , and , findw , function even I only keep aplphbet and ","  .  However, I can find "carboplatin"  .    Any solution ?  Thank you very much!

 

 

test = compress(lowcase(regimen),'abcdefghijklmnopqrstuvwxyz,','k') ;

if index(test, 'paclitaxel') = 1 then pre_TAXANE = 1 ;

 

regimen

Afatinib,Carboplatin,Paclitaxel 1 . .
Afatinib,Carboplatin,Paclitaxel Protein-Bound 1 . .

 

Super User
Posts: 6,543

Re: Cannot find the word in the string

[ Edited ]

There's another good reason that SAS can't find the string ... it isn't there. Character strings in SAS are case-sensitive.  So you should be checking:

 

if index(lowcase(test), 'paclitaxel')  then pre_TAXANE = 1 ;

 

The IF condition will be true for values that are neither 0 nor missing.

 

***************** EDITED:

 

@Reeza you're right.  My bad.  LOWCASE is already built into the logic.  Where's that coffee?

Solution
‎04-18-2018 10:07 AM
Super User
Posts: 22,874

Re: Cannot find the word in the string

Posted in reply to Astounding

@Astounding doesn't the previous statement lowcase everything?

 

@Ivy review the modifiers so that you can avoid listing all the alphabet in your list. I think its 'ka' to keep all alphabetic values. 

Frequent Contributor
Frequent Contributor
Posts: 82

Re: Cannot find the word in the string

Thank you both very much for the quick response!

 

It is a bless that your guys here. :-) 

 

Have a great day !

Frequent Contributor
Frequent Contributor
Posts: 82

Re: Cannot find the word in the string

I would like to keep all alphabetic and "," , hope this is a way. Thank you again !
Super User
Posts: 22,874

Re: Cannot find the word in the string

Posted in reply to Astounding

Coffee? I'm about to go to bed and I'm on the West Coast Smiley Very Happy

 

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 6 replies
  • 127 views
  • 2 likes
  • 3 in conversation