How to find a specific text (word) within a column character - nominal data type ?Hi,
I'd like to get some help on finding a specific string (actually 2 strings, say "JMP1" and "JMP2") that may be within a column with text, as we move down that column, and then have a formula column next to it to label "JMP1" or "JMP2", if it finds it, or label say "NA" otherwise.
A couple of notes:
1- "JMP1" or "JMP2" can be in any position within the text in Column 1
2- "JMP1" and "JMP2" are not contained in the same text in Column 1
So in my mind it will be something like this for the Formula Column (Column 2 - the label column):
IF (Column 1 contains "JMP1", then Column 2 = "JMP1", else (IF Column 1 contains "JMP2", then Column 2 = "JMP2", else Column 2 = "NA"));
I looked up to the Match function, but I got a bit confused with the multiple arguments and expressions. Maybe I'm not on the right track either, hence why I need advice
It will be great if someone could share their thoughts (preferably through the Formulas area, but will be open to suggestions through JSL).
Thanks,
Vasco
Re: How to find a specific text (word) within a column character - nominal data type ?Ah, I see the confusion. So since we used the full string that you were looking for in the contains function we got either a "1" as the string started in position 1 or a 0 since the string didn't start in any position. This worked in the If statement. If we had used Contains(:column, "P") it would have returned "3" for any row with a JMPx value, since P is in the third position. I didn't think (or really know) about that nuance as I typically use the contain function as you were trying to do...is something there or not. The Regex solution is more sophisticated and is a good solution for something that is going to be used repeatability with changing data.Re: How to find a specific text (word) within a column character - nominal data type ?Hi @vince_faller ,
I must admit that your proposal is a bit too much advanced for me at this point.Thanks for your input., though
I really liked Karen's simple proposal for my problem.
Regards,
Vasco
Re: How to find a specific text (word) within a column character - nominal data type ?Hi @KarenC ,
Thanks, it worked ! Simple and straightforward
I actually looked at the Contains function in the Character functions' help, but was getting confused with the description as it says that it will retrieve a "numeric position". Your solution was pretty much what I mentioned on my post, just had to converted into an actual JMP formula using the contains function.
Cheers,
Vasco
Re: How to find a specific text (word) within a column character - nominal data type ?Regex is really powerful and used in a lot of languages. Though it can admittedly be quite hard to understand.
Names default to here(1);
dt = new table("Example",
New Column("JMPs", character, <<SET values=""></SET>Re: How to find a specific text (word) within a column character - nominal data type ?If( Contains( :name, "JA" ),
"JA",
If( Contains( :name, "MA" ),
"MA",
"NA"
)
)
I think you are there. JMP has a character function called contains. You can use that as illustrated above for the big class sample data file. See the help for character functions at character function help