cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Check out the JMP® Marketplace featured Capability Explorer add-in
Choose Language Hide Translation Bar
maswan
Level I

Simple Question: How to find out a column number

Hello Community,

 

i just want to learn how to find out a column number in JMP. 

I tried using Column Info, but this information is not there. I can type a column number in Cols > Column Selection > Go to.. , but I don't want to try to guess.

Because I want to use the Column Number in my Script to loop over it (for example from column 120 to 130). But for this I needed to find out, that my starter Column (in my case "I_nA_3_m30_NS")  was located on the column 120..

 

Thanks for any help.

 

1 ACCEPTED SOLUTION

Accepted Solutions
ian_jmp
Level X

Re: Simple Question: How to find out a column number

If you want to allow for partial matches across multiple columns, you could let 'FilterColSelector()' do some of the work:

Names Default To Here( 1 );

dt = Open( "$SAMPLE_DATA/big class.jmp" );
allCols = dt << getColumnNames("String");

fcs = Filter Col Selector( << nameContains("eight"));
matchingCols = fcs << getItems;
fcs << delete;

matchingColNumbers = [];
for(c=1, c<=NItems(matchingCols), c++, matchingColNumbers = matchingColNumbers||Loc(allCols, matchingCols[c]));
Print(matchingColNumbers);

View solution in original post

6 REPLIES 6
Thierry_S
Super User

Re: Simple Question: How to find out a column number

Hi,

Here is one method to return the relative position of the first column matching a text pattern (in my care "VISIT"):

Names default to here (1);

dt = current data table ();

cols = dt << get column names (string);

text = "VISIT";

tcol = contains (cols, text);

show (tcol);

Let us know if that works for you.

Best,

TS

Thierry R. Sornasse
maswan
Level I

Re: Simple Question: How to find out a column number

Thank you for your reply, is a good idea, but it didn't work for me, my tcol was 0.

 

Here is the cols variable (another table than the original question):

 

{"Tag", "FitA_ 1", "FitA_ 2", "FitA_ 3", "FitA_ 4", "FitA_ 5", "FitA_ 6", "FitA_ 7", "FitA_ 8", "FitA_ 9", "FitA_10", "FitA_11", "FitA_12", "FitB_ 1", "FitB_ 2", "FitB_ 3", "FitB_ 4", "FitB_ 5", "FitB_ 6", "FitB_ 7", "FitB_ 8", "FitB_ 9", "FitB_10", "FitB_11", "FitB_12", "F", "H_ 1", "H_ 2", "H_ 3", "H_ 4", "H_ 5", "H_ 6", "H_ 7", "H_ 8", "H_ 9", "H_10", "H_11", "H_12", "V2_ 1", "V2_ 2", "V2_ 3", "V2_ 4", "V2_ 5", "V2_ 6", "V2_ 7", "V2_ 8", "V2_ 9", "V2_10", "V2_11", "V2_12", "V3_ 1", "V3_ 2", "V3_ 3", "V3_ 4", "V3_ 5", "V3_ 6", "V3_ 7", "V3_ 8", "V3_ 9", "V3_10", "V3_11", "V3_12", "NAT"}

 

and I tried with text = "FitB"

 

but tcol was 0

txnelson
Super User

Re: Simple Question: How to find out a column number

The Contains() function when used to compare across a JMP List, returns only exact matches.  If you need to look internally for each element in the list, you will need to do something like:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );

cols = dt << get column names( string );

text = "wei";

For( i = 1, i <= N Items( cols ), i++, 

	tcol = Contains( cols[i], text );
	If( tcol > 0,
		tcol = i;
		Break();
	);
);
Show( tcol );

 

Jim
Thierry_S
Super User

Re: Simple Question: How to find out a column number

Hi,

Good catch: the method I suggested assumes that you look for the entire name of the target column which is not valid in your case where you look for a substring.

Let me think about it.

Best,

TS

Thierry R. Sornasse
ian_jmp
Level X

Re: Simple Question: How to find out a column number

If you want to allow for partial matches across multiple columns, you could let 'FilterColSelector()' do some of the work:

Names Default To Here( 1 );

dt = Open( "$SAMPLE_DATA/big class.jmp" );
allCols = dt << getColumnNames("String");

fcs = Filter Col Selector( << nameContains("eight"));
matchingCols = fcs << getItems;
fcs << delete;

matchingColNumbers = [];
for(c=1, c<=NItems(matchingCols), c++, matchingColNumbers = matchingColNumbers||Loc(allCols, matchingCols[c]));
Print(matchingColNumbers);
txnelson
Super User

Re: Simple Question: How to find out a column number

One way to approach this is:

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );

colNumber = Contains( dt << get column names( string ), "height" );
Show( colNumber );
Jim