Subscribe Bookmark RSS Feed

Finding row index as a number

razmah

Community Trekker

Joined:

Jul 20, 2015

hi all.

I need to find row index when column2 =0

and then use the row number in subset.

when I use "select where" or "get where" it doesn't give me the index as a number.

dt<<get rows where( :column (2)==0);

 

1 ACCEPTED SOLUTION

Accepted Solutions
Solution

Your result indicates there were no rows meeting your criteria. If you know there are rows with 0 in them, it may be that your column is character data type and the comparison is numeric... either put quotes around 0 in your comparison, or change the data type of the column to Numeric.

5 REPLIES
pmroz

Super User

Joined:

Jun 23, 2011

Slight modification to your syntax:

rmat = dt << get rows where (as column(2) == 0);
razmah

Community Trekker

Joined:

Jul 20, 2015

it shows:

rmat = [](0, 1);

what does this mean? I need just a number. for example 90. (means in row #90)

Byron_JMP

Staff

Joined:

Apr 26, 2012

Run this:

 

dt=New Table( "example table",
  Add Rows( 12 ), New Column( "A column", Numeric, "Continuous",
  Set Values( [1, 1, 1, 10, 0, 1, 1, 1, 0, 1, 0, 1] )  ));
rmat = dt << get rows where (as column(1) == 0);

 

in the log you'll see this:

[5, 9, 11]

 

this is a list of rows where the first column was equal to 0;

David_Burnham

Super User

Joined:

Jul 13, 2011

rmat is a row matrix.  To get the number of rows you can write n = NRows(rmat).  The first row number will be rmat[1], the second rmat[2] up to rmat.  If you want to look up corresponding values in another column, just for these rows you can write Column("data")[rmat] << Get Values.

-Dave
Solution

Your result indicates there were no rows meeting your criteria. If you know there are rows with 0 in them, it may be that your column is character data type and the comparison is numeric... either put quotes around 0 in your comparison, or change the data type of the column to Numeric.