- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
column number
Hi all,
how can I get the column number in a table?
as below header 3 is column # 3 in the table ...
Header 1 | Header 2 | Header 3 |
---|---|---|
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: column number
I'm sorry, but this post went from bad coding practices to worse coding practices. As the saying goes, there are multiple ways to skin a cat, and there are multiple ways to write code to perform the same function. However, what is the best way? Generally, we will want to consider at LEAST the three main factors speed, length of code, and error proneness. For this, reason,
number_of_columns = n items( dt << Get Column Names());
is really poor programming. What you should use is:
number_of_columns = ncols(dt);
The obvious is it's shorter, but it's also faster. The former has to create a list of all the column names, and then count them. The latter will simply grab the table variable.
Next, column3 = column(dt, 3); should never be used. The first reason is b/c column3 is a poor name. I'm not going to go into why, but you can read this post for clarification What's in a Name? Anti-Patterns to a Hard Problem. The second reason, is b/c of the additional step you are introducing. Why do:
column_nr = Contains(dt << get column names(), Column("height"));
column = column(dt, column_nr);
When you could just:
column = Column(dt, "height");
Again, the latter is shorter and faster.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: column number
without using a loop for !!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: column number
Below is an approach using Contains that does what (I think) you're asking for:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//Works!
column_nr = Contains(dt << get column names(string), "height");
column_nr = Contains(dt << get column names(), Column("height"));
column_nr = Contains(dt << get column names(), expr(height));
//Works not
column_nr = Contains(dt << get column names(), height);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: column number
I like where you're heading with this MS. I might start out with a
dt = Current Data Table();
And if llupo0's question were how many columns are there your could be modified it to look like this:
number_of_columns = n items( dt << Get Column Names());
If ultimately interested, llupo0 could then refer to the columns by number:
column3 = column(dt, 3);
value1_column3 = column3[1];
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: column number
I'm sorry, but this post went from bad coding practices to worse coding practices. As the saying goes, there are multiple ways to skin a cat, and there are multiple ways to write code to perform the same function. However, what is the best way? Generally, we will want to consider at LEAST the three main factors speed, length of code, and error proneness. For this, reason,
number_of_columns = n items( dt << Get Column Names());
is really poor programming. What you should use is:
number_of_columns = ncols(dt);
The obvious is it's shorter, but it's also faster. The former has to create a list of all the column names, and then count them. The latter will simply grab the table variable.
Next, column3 = column(dt, 3); should never be used. The first reason is b/c column3 is a poor name. I'm not going to go into why, but you can read this post for clarification What's in a Name? Anti-Patterns to a Hard Problem. The second reason, is b/c of the additional step you are introducing. Why do:
column_nr = Contains(dt << get column names(), Column("height"));
column = column(dt, column_nr);
When you could just:
column = Column(dt, "height");
Again, the latter is shorter and faster.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: column number
nice ... and yes it works perfectly thank you
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: column number
Could you explain a little on why you want this? 99 times out of a 100, this value is not beneficial and there's a better coding methodology that should be implemented. This is especially true since to get this number you'd either need to know the Column Reference or Column Name, which are both more valuable.