How do I add a filter column as a AND criteria<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
The syntax for Add Filter dictates that the new columns must be in the OR criteria.
Is there some way I can add rules in an iterative way?
dtf<), )
Add one or more filter columns in a new OR group.
Re: How do I add a filter column as a AND criteriaI fail to understand the fundamental difference between
1)
df = gb << Local Data Filter(Add Filter(columns({"age", "sex", "name"})));
and
2)
colList = {"age", "sex", "name"};
df = gb << Local Data Filter(Add Filter(columns(colList)));
1) works and 2) does not.
Would you please explain WHY?
Thank you for your help!
Re: How do I add a filter column as a AND criteriaHere's one way:
// AND
df << removeLocalDataFilter;
colList = {"age", "sex"};
CMD =
Expr(
df = gb << Local Data Filter(
Add Filter( columns( colsTBD ) )
)
);
SubstituteInto(CMD, Expr(colsTBD), colList);
CMD;Re: How do I add a filter column as a AND criteriaThank you for the quick reply. That will work.
Is there also a way to define the list of filter columns in a List variable and forward this to the filter (the name of my filter columns are dynamic)?
e.g.
filter_vars = {"age","sex"};
and somehow use filter_vars as an input for the data filter (instead of columns(:age,:sex))
Re: How do I add a filter column as a AND criteriaUsing Chung-Wei's example:
dt = Open( "$sample_data/Big Class.jmp" );
// AND
gb = Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ), Jitter( 1 ) ), Smoother( X, Y, Legend( 3 ) ) ),
);
Wait( 3 );
// OR
df = gb << Local Data Filter(
Add Filter( columns( :age ) ),
Add Filter( columns( :sex ) )
);
Wait( 3 );
// AND
df << removeLocalDataFilter;
df = gb << Local Data Filter(
Add Filter( columns( :age, :sex ) )
);
Re: How do I add a filter column as a AND criteriaI have the same issue. is there a way to add an AND filter instead of an OR filter (which was already shown by staff member chungwei)?Re: How do I add a filter column as a AND criteriasorry. I did not ask the question correctly.
I meant to ask if you would like to send separate messages to the data filter, instead of the way PMRoz showed.
Re: How do I add a filter column as a AND criteriaHi Chung Wei,
That would only add the criteria as an OR condition not AND...
Re: How do I add a filter column as a AND criteriaHi PMroz,
Appreciate the response. But what I'm trying to achieve here is to add a filter to the current one after I've done some other crunching..
dt = open("$sample_data/Big Class.jmp");
gb = Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Points( X, Y, Legend( 1 ), Jitter( 1 ) ),
Smoother( X, Y, Legend( 3 ) )
),
Location( {935, 334} ),
Mode( Select( 0 ), Show( 1 ), Include( 1 ) ),
columns( :age, :sex ),
Where( :age == {12, 13, 14} )
//Where( :sex == "M" )
);
//do something else here...
gb << Add Filter(
columns( :sex ),
Where( :sex == "M" )
);
Re: How do I add a filter column as a AND criteriaare you missing a semi-colon (;) between the two df statements?
Re: How do I add a filter column as a AND criteriaIs this what you have in mind ?
dt = open("$sample_data/Big Class.jmp");
// AND
gb = Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 1 ), Jitter( 1 ) ),
Smoother( X, Y, Legend( 3 ) )
),
);
df = gb << Local Data Filter(
Mode( Select( 0 ), Show( 1 ), Include( 1 ) ),
Add Filter(
columns( :age ),
Where( :age == {12, 13, 14} ),
)
)
df << Add Filter(
columns( :sex ),
Where( :sex == "M" ),
)
Re: How do I add a filter column as a AND criteriaTo figure this out:
Create a graph using Big Class
Add a local data filter with 2 variables (e.g. age and sex) using the AND button
Select criteria from both variables in the filter
Click the red triangle and select script > Copy Script
Here's an example that shows the necessary syntax:
dt = open("$sample_data/Big Class.jmp");
// AND
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 1 ), Jitter( 1 ) ),
Smoother( X, Y, Legend( 3 ) )
),
Local Data Filter(
Location( {935, 334} ),
Mode( Select( 0 ), Show( 1 ), Include( 1 ) ),
Add Filter(
columns( :age, :sex ),
Where( :age == {12, 13, 14} ),
Where( :sex == "M" )
)
)
);