매개 변수의 점프를 감지하고 그것이 어디에 있는지보고합니다.친애하는 JMP 커뮤니티,
한 제품의 파손을 나타내는 점의 X 좌표를 감지하는 방법을 찾기 위해 고심하고 있습니다.
나는 그것이 스크립트로 할 수 있다고 확신하지만 JMP에 대한 경험은 거의 없다.
어떤 도움도 환영합니다 !!
친애하는,
/ JM

다시 : 매개 변수에서 점프 감지 및 위치보고JMP 열 이름은 대소 문자를 구별하지 않으므로 대부분의 경우 "v"또는 "V"로 참조하면 코드 실행에 영향을주지 않습니다.다시 : 매개 변수에서 점프 감지 및 위치보고고마워요! 그것은 많은 도움이됩니다. JMP에서 스크립트 작성 방법을 보여주기 때문에 코드에 들어가서 약간의 실수가 있음을 알았습니다. 나는 "각 값 (e-06)"을 각 값 (-6) "-log10 I-을 설정하기 위해 바꿨으며 완벽하게 작동합니다. 또한 JMP에서 왜 dtsumm : v [dtsummRow]가 오류를 생성하지 않는지 묻습니다. 나는 dtsumm : V [dtsummRow] 란 이름을 대문자로 쓰면됩니다. 다시 한 번, 당신의 도움을 많이! / JM다시 : 매개 변수에서 점프 감지 및 위치보고다음은 교차 전압을 결정하기위한 계산을 수행하는 스크립트입니다.
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()])
);
);
);