Hi,
I'm a still a beginner, hope I'll progress with this problem !
I have a recurrent column named "median_range_mm" then "median_range_mm 2" then "median_range_mm 3 ..."
And an associated column called "target_status" then" target_status_2" .....
I would like to plot a continuous distribution with all median range 1, 2 , 3... on the same window. BUT I want to filter all the cell from a median range that it has a target status different to 5.
Hope I am clear. This the code, I don't know how to write the condition of filter for target status in a loop "for".
dt = Current Data Table();
/renaming columns<BR />For( i = 1, i <= 716, i++,<BR /> For( j = 0, j <= 65, j++,<BR /> If(<BR /> i == 1, Column( i ) << set name( "EVENT_BEGIN_OF_CAPTURE" ),<BR /> i == 10, Column( i ) << set name( "Temperature" ),<BR /> i == 16 + 11 * j, Column( i ) << set name( "target_status" ),<BR /> i == 17 + 11 * j, Column( i ) << set name( "median_range_mm" ),<BR /> )<BR /> )<BR />)<BR /><BR />
// for the first ranging column
valMax = Max( :Temperature[dt << get rows where( :target_status == 5 )] ); //max selection
For( d = 3, d <= N Rows( dt ), d++,
val1 = Column( "Temperature" )[d];
val2 = Column( "Temperature" )[d + 1];
dt << select where( val2 - val1 <= 0.1 * valMax ); //stability
);
// plot of the first ranging
New Window( "Only plot median range with a stable temperature",
H List Box(
Distribution(
Uniform Scaling( 1 ),
Continuous Distribution(
Column( :median_range_mm ),
Show Percents( 1 ),
Show Counts( 1 ),
Customize Summary Statistics( Minimum( 1 ), Maximum( 1 ), Median( 1 ), Set Alpha Level( 0.05 ) ),
/* it is the first column so I can write : "target_status" to call the column */ <BR /><FONT face="arial black,avant garde" color="#FF9900"><STRONG> Local Data Filter( Add Filter( columns( :target_status ), Where( :target_status == 5 ) ) );</STRONG></FONT>
)
);
<BR />// looking for the first max value of the ranging
maxValue = Max( :median_range_mm[dt << get rows where( :target_status == 5 )] );
minValue = Min( :median_range_mm[dt << get rows where( :target_status == 5 )] );
// Then look on the others columns
For( p = 2, p <= 64, p++,
nom = "median_range_mm " || Char( p ); // look at ranging median_range_mm 1, 2, 3 ...
col = Column( nom );
name = "target_status " || Char( p ); // look at target status associated
tgt = Column( name );
//dt << get rows where( Column( name ) == 5); // doesn't work
<STRONG> maxValueVar = Max( Column( nom )[dt << get rows where( Column( name ) == 5 )] );
minValueVar = Min( Column( nom )[dt << get rows where( Column( name ) == 5 )] );</STRONG>
If(
maxValueVar > maxValue, maxValue = maxValueVar,
minValueVar < minValue, minValue = minValueVar
);
);
For( g = 2, g <= 64, g++,
nom = "median_range_mm " || Char( g );
col = Column( nom );<BR /> /* there is difficutie*/<BR /><FONT face="arial black,avant garde" color="#FF9900"><STRONG> name = "target_status " || Char( g );
tgt = Column( name );</STRONG></FONT>
valueMax = Max( :Temperature );
For( h = 3, h <= N Rows( dt ), h++,
value1 = Column( "Temperature" )[h];
value2 = Column( "Temperature" )[h + 1];
dt << select where( value2 - value1 <= 0.1 * valueMax ); // this is for a plot with a stable temperature
);
Distribution(
Uniform Scaling( 1 ),
Continuous Distribution(
Column( col ),
Show Percents( 1 ),
Show Counts( 1 ),
Customize Summary Statistics( Minimum( 1 ), Maximum( 1 ), Median( 1 ), Set Alpha Level( 0.05 ) ),<BR /> /* there is the difficultie*/<BR /> /* I don't want to call all the columns " target_status 2 , 3 , 4 .... */ <BR /><FONT face="arial black,avant garde" color="#FF9900"><STRONG> Local Data Filter(
Add Filter( columns( Column( tgt ), Where( Column( tgt ) == 5 ) ) );</STRONG></FONT>
)
)
);
);
)
);
Cheers