It’s World Statistics Day! To honor the theme of the day, the JMP User Community is having conversations about the importance of trust in statistics and data. And we want to hear from you! Tell us the steps you take to ensure that your data is trustworthy.
Choose Language Hide Translation Bar
Highlighted
David_Morrow
Level II

Extracting a particular string from a longer one

SourceTemperature
MZ_ES20-ATF786_D03-R_8x8-5hz_NoCG_0klux-black3--5degc__20181105_203705-5
MZ_ES20-ATF786_D03-R_8x8-5hz_NoCG_0klux-grey17--30degc__20181105_194659-30
MZ_ES20-ATF786_D03-R_8x8-5hz_NoCG_0klux-white64-70degc__20181105_18392070

 

Hi,

I am trying to extract the temperature from the "Source" column in the JMP table above using JSL

In the Temperature column I have written the results that I would like. My problem is that the delimiter between the colour

(black3,grey17 and white64) and the temperature is a dash "-" but sometimes the temperature is negative which is also "-"

I have tried a number of things with the Word function but so far to no avail. Any help with this would be apprecated.

 

Thanks and regards,

David 

2 ACCEPTED SOLUTIONS

Accepted Solutions
Highlighted

Re: Extracting a particular string from a longer one

This problem is easily solved by the Regex() string function. Try this:

 

Num( Regex( :Source, "-(-?\d\d?\d?)degc", "\1" ) )
Learn it once, use it forever!

View solution in original post

Highlighted
txnelson
Super User

Re: Extracting a particular string from a longer one

Here is a formula that I believe will do the trick

degCPosition = Contains( :Source, "degc__" ) - 1;
i = degCPosition;
While( Substr( :Source, i, 1 ) != "-", i-- );
If( Substr( :Source, i - 1, 1 ) == "-",
	result = Num( Substr( :Source, i, (degCPosition - i) + 1 ) ),
	result = Num( Substr( :Source, i + 1, degCPosition - i ) )
);
result;

position.PNG

Jim

View solution in original post

4 REPLIES 4
Highlighted

Re: Extracting a particular string from a longer one

This problem is easily solved by the Regex() string function. Try this:

 

Num( Regex( :Source, "-(-?\d\d?\d?)degc", "\1" ) )
Learn it once, use it forever!

View solution in original post

Highlighted
David_Morrow
Level II

Re: Extracting a particular string from a longer one


Hi,
Thank you , that works and very succinct !

Kind Regards,
David.
Highlighted
txnelson
Super User

Re: Extracting a particular string from a longer one

Here is a formula that I believe will do the trick

degCPosition = Contains( :Source, "degc__" ) - 1;
i = degCPosition;
While( Substr( :Source, i, 1 ) != "-", i-- );
If( Substr( :Source, i - 1, 1 ) == "-",
	result = Num( Substr( :Source, i, (degCPosition - i) + 1 ) ),
	result = Num( Substr( :Source, i + 1, degCPosition - i ) )
);
result;

position.PNG

Jim

View solution in original post

Highlighted
David_Morrow
Level II

Re: Extracting a particular string from a longer one

Thank you ,very helpful
Kind Regards,
David.

Article Labels

    There are no labels assigned to this post.