cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JMP is taking Discovery online, April 16 and 18. Register today and join us for interactive sessions featuring popular presentation topics, networking, and discussions with the experts.
aserino
Level III

Select rows based of multiple conditions

Hello,

I'm trying to select rows where either the second or third column have a value below 10^-9, or if there is a missing value in the 4th column. The problem appears to be with the less than operator and I cannot figure out why.

 

Example table:

Col1

Col2Col3Col4
10.000000590.000000308

A

24.08e-9-8.1e-11B
3-1.11e-101.02e-10 

 

Here's the code:

dtColNames = dt << get ColumnNames("String");
val = 10^-9;
dt << Select Where((dt:dtColNames[2]<val | dt:dtColNames[3]<val ) | ismissing(dt:dtColNames[4]));

If I simplify this down to the following:

dtColNames = dt << get ColumnNames("String");
val = 10^-9;
dt << Select Where(dt:dtColNames[2]<val );

nothing is selected, when row 3 should be.

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Select rows based of multiple conditions

A character string is not a column name or reference. You need to convert the string to a column reference.

 

dt << Select Where( Column( dt, dtColNames[2] )[] < val | Column( dt, dtColNames[3] )[] < val | ismissing( Column( dt, dtColNames[4] )[] ));

View solution in original post

2 REPLIES 2

Re: Select rows based of multiple conditions

A character string is not a column name or reference. You need to convert the string to a column reference.

 

dt << Select Where( Column( dt, dtColNames[2] )[] < val | Column( dt, dtColNames[3] )[] < val | ismissing( Column( dt, dtColNames[4] )[] ));
aserino
Level III

Re: Select rows based of multiple conditions

Ah! Thanks!