Subscribe Bookmark RSS Feed

In JSL, how to use a column name using a dynamic variable name list?

zxu1

Community Trekker

Joined:

Oct 31, 2012

For example, I have a table dt with n columns, X1, X2, ..., Xn. I need to draw distributions for EACH column, X(i), like below (repeat n times):

Distribution(

Continuous Distribution(

  Column( :X1),

  Horizontal Layout( 1 ),

  Vertical( 0 ),

  Normal Quantile Plot( 1 ),

  Capability Analysis( LSL( 4 ), USL( 22 ), Target( 13 ) )

)

);

How can I use a loop to do this? I tried the following, but it is not successful :-(.

ColNameList = dt << Get Column Names(Nominal, String);

for (k=1, k<=n, k++,

Distribution(

Continuous Distribution(

  Column( :ColNameList),

  Horizontal Layout( 1 ),

  Vertical( 0 ),

  Normal Quantile Plot( 1 ),

  Capability Analysis( LSL( 4 ), USL( 22 ), Target( 13 ) )

  )

)

);

Any good suggestion?

Thanks.

John

1 REPLY
ms

Super User

Joined:

Jun 23, 2011

I am not sure why you specify Nominal in <<get column names(). I would think that numeric and continuous variables are required In this context.

This should work:

dt = Current Data Table();

ColNameList = dt << Get Column Names( continuous ); //Capability do not work well with nominal columns

For( k = 1, k <= N Items( ColNameList ), k++,

  Distribution(

  Continuous Distribution(

  Column( ColNameList[k] ),

  Horizontal Layout( 1 ),

  Vertical( 0 ),

  Normal Quantile Plot( 1 ),

  Capability Analysis( LSL( 4 ), USL( 22 ), Target( 13 ) )

  )

  )

);