cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Submit your abstract to the call for content for Discovery Summit Americas by April 23. Selected abstracts will be presented at Discovery Summit, Oct. 21- 24.
Discovery is online this week, April 16 and 18. Join us for these exciting interactive sessions.
Choose Language Hide Translation Bar
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!