turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- JMP User Community
- :
- Discussions
- :
- Discussions
- :
- Detecting a jump in a parameter and reporting wher...

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Nov 2, 2016 8:21 AM
(988 views)

Dear JMP community,

I am struggling to find a way to detect the X-coordinate of a point which stands for the breakage of one product.

I am sure it is possible to do it by scripts but I have very little experience with JMP.

Any help is welcome!!

Best regards,

/JM

3 REPLIES

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Nov 2, 2016 6:54 PM
(968 views)

Here is a script that will do the calculations to determine the cross over voltage

Names Default To Here( 1 ); dt = Current Data Table(); // Create a summary table to hold the new information dtsumm = dt << Summary( Group( :batch, :Samples ID ), Freq( "None" ), Weight( "None" ) ); // Add a new column to hold the calculated value for the Voltage value when the data crosses // crosses the target value dtsumm << New Column( "V" ); // Create a new column that has the target value dtsumm << New Column( "Log10 I", set each value( e-06 ) ); // Set the active data table back to the original data table Current Data Table( dt ); // Loop across the active data table and calculate the voltage when the Y variable crosses the // target value For Each Row( currow = Row(); curbatch = dt:batch[Row()]; cursampleID = :Samples ID[Row()]; // Get the row in the output table that matches the Batch value and Samples ID // value for the row in the main table the looping is working on dtsummRow = (dtsumm << get rows where( dtsumm:batch == curbatch & dtsumm:Samples ID == cursampleID ))[1]; // Don't process the data if the crossing point has been previously found If( Is Missing( dtsumm:v[dtsummRow] ), // Find all of the matching rows above the current looping row Highrows = dt << get rows where( dt:batch == curbatch & dt:Samples ID == cursampleID & Row() > currow ); // If the target value lies between the current rows Y value and the next matching rows Y value then // determine the crossing voltage value by doing an interprelation of the voltage values of the current row // and the next matching rows value. If( dt:Name( "Log10 I [A]" )[Row()] <= dtsumm:Log10 I[dtsummRow] & dt:Name( "Log10 I [A]" )[Min( Highrows )] > dtsumm:Log10 I[dtsummRow], dtsumm:V[dtsummRow] = dt:V[Row()] + (dt:V[Min( Highrows )] - dt:V[Row()]) * (dtsumm:Log10 I[dtsummRow] - dt:Name( "Log10 I [A]" )[Row()]) / (dt:Name( "Log10 I [A]" )[Min( Highrows )] - dt:Name( "Log10 I [A]" )[Row()]) ); ); );

Jim

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Nov 3, 2016 3:10 AM
(960 views)

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Nov 3, 2016 10:38 AM
(944 views)

Jim