cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Instantly extract effect sizes, F-ratios, and FDR-adjusted p-values from your models with the Calculate Effects Sizes extension, available now in the JMP Marketplace!
  • New to JMP? Join us Sept. 23-24 for the Early User Edition of Discovery Summit, tailor-made for new users. Register now for free!
  • Your voice matters! Tell us how you prefer to receive JMP updates, so we can tailor our communication to your needs. Take short survey.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
jvillaumie
Level III

JSL: stacking a single Group of columns (as opposed to the many individual columns that make up the Group) ?

Hello,

I need to stack columns which have a certain string in their column name, so I wrote a script to iterate through all the columns to see if their name has the sought string, then make a Group with all the columns that have that string (see script below. the columns are pushed to the end of the table to make them easier to group).

I then want to stack the group of columns, which is straightforward when doing it manually (selecting the Group populates the Stack window with the name of all the columns in the group). I cannot however figure out how to script the Stack() command to use the Group as an argument.

Is a Group a valid argument for the Stack() function, and if so what is the JSL syntax?

If not valid, what are the other option to stack a (variable) number of columns?

dt = current data table ();

col_name_list = (dt << Get Column Names());

n_dissolution_columns = 0;

for (var_column_number= N Items (col_name_list), var_column_number >= 1, var_column_number --,

     current_column_name= uppercase(char(col_name_list[var_column_number]));

         

     if( munger((current_column_name),1,"DISSOLUTION") > 0,

     n_dissolution_columns= n_dissolution_columns +1;

           column(var_column_number)<< Set Selected(1);

      dt<< Move Selected Columns(To Last);

     );

);   

dt << Group Columns("Dissolution columns group", column(N Items (col_name_list)+1 - n_dissolution_columns), n_dissolution_columns);

1 ACCEPTED SOLUTION

Accepted Solutions
jvillaumie
Level III

Re: JSL: stacking a single Group of columns (as opposed to the many individual columns that make up the Group) ?

I found the answer in a different post about transposing a group of column (How does one use a group of columns in a transpose data statement). the way to do it is to use << get column group("group name"):

dt << Stack(

columns( dt << get column group( "Dissolution columns group" ) ),

Output Table( "Stacked using the Group name as argument" )

);


View solution in original post

1 REPLY 1
jvillaumie
Level III

Re: JSL: stacking a single Group of columns (as opposed to the many individual columns that make up the Group) ?

I found the answer in a different post about transposing a group of column (How does one use a group of columns in a transpose data statement). the way to do it is to use << get column group("group name"):

dt << Stack(

columns( dt << get column group( "Dissolution columns group" ) ),

Output Table( "Stacked using the Group name as argument" )

);


Recommended Articles