- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
How to reference already open data table (from multiple open data tables) JSL
I am working on writing scripts that create different reports and data tables. However, I always have to end up running them chunk wise and manually clicking on the drop down menu to select the data table I want to run the given chunk of script on.
I am familiar with the current data table() function, but not really anything else that doesn't require a file path.
Does anyone know any easy way to reference or select a different already open data table, perhaps by name or something?
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to reference already open data table (from multiple open data tables) JSL
Any data table can be referenced by using the Data Table() function. Such as:
Data Table("Big Class") << Bivariate( X(:height), Y(:weight) );
One can also set a variable equal to a data table when it is created, and if the variable isn't changed in the script, it will always reference the table it was linked to.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << select where( :sex == "F" );
dtFemale = dt << subset( selected columns( 0 ), selected rows( 1 ) );
rpt = New Window( "Subset of big class - Distribution of height, weight",
dtFemale << Distribution(
Continuous Distribution( Column( :height ), Process Capability( 0 ) ),
Continuous Distribution( Column( :weight ), Process Capability( 0 ) )
)
);
Wait( 0 );
dtStats = rpt["Distributions", "height", "Summary Statistics", Table Box( 1 )] <<
Make Combined Data Table;
rpt << Close Window;
dtStats << Tabulate(
Change Item Label( Statistics( Sum, "Stats" ) ),
Remove Column Label( Analysis Columns( Column 2 ) ),
Show Control Panel( 0 ),
Add Table(
Column Table( Analysis Columns( :Column 2 ) ),
Row Table( Grouping Columns( :Y, :Column 1 ) )
)
);
Other methods can be used. If you would provide a sample of the code you are using, additional help may be available.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to reference already open data table (from multiple open data tables) JSL
If you still wanted to interactively choose which table you run a script on, but wanted it to be a bit more robust, you could do something like this:
names default to here(1);
// Open a couple of tables for demo purposes
dt1 = open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
wait(0);
table_names = {};
For( i = 1, i <= N Table(), i++,
Insert Into( table_names, Data Table( i ) << get name );
);
If( N Items( table_names ) > 0,
tabSelect = New Window( "Select Table For Use",
<<Modal,
<<Return Result,
Lineup Box( N Col( 1 ),
Text Box( "Select table for use for your script" ),
t1 = Combo Box( table_names ),
H List Box( Button Box( "OK" ), Button Box( "Cancel" ) )
)
);
If( tabSelect["button"] == -1,
Throw( "Run chart script cancelled." )
);
,
Throw( "No data tables found." )
);
dt = Data Table( table_names[tabSelect["t1"]] );
print( "Selected data table: " || char( dt << get name ) );
// Rest of script here
// Use dt as the reference for the table you want to analyse.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to reference already open data table (from multiple open data tables) JSL
Thank you.