- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
How to store data in a list?
Hi everyone,
I face a problem on how to store the subset data table into a list, below is my code :
dt = Open (<path of file>);
p= {"G_40", "F_45", "E_57", "F_85", "H_90"};
For( i = 1, i <= N Items( p ), i++,
dt << Select Where(Starts With( dt:ftf, p[i] ) ) ;
tempDT = dt << Subset( output table name( "Subset" ), selected rows( 1 ), selected columns( 0 ), "invisible");
);
I plan to store tempDT into the empty list, Anyone has an idea on the store function? I very new to JSL if in python we will use append function to store, then how about jsl?
Because when i scratch out the script, then run the script, it can generate out all the subset data table but when i want to plot chart, it only generate out the chart for the last subset data table. So, anyone can give me some idea on how to work it
Thanks.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
Ian's answer is a much better approach than using a list. In the list apporach you have mutiple for-loops, one to build the list, and one (or more) to process the list. Ian is doing all the processing in a single for-loop, creating a graph and moving it to its final destination. He's also only creating one subset at a time, and closing it as soon as he is done with it. There's another advantage to Ian's approach: the meta-data about the subset is still available--you know the parameters used to create the subset have not changed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
The documentation for handling lists is located in the Scripting Guide for JMP 13, on page 161.
Help==>Books==>Scripting Guide==>Working with Collections of Data
The real question that you need to deal with is the fact that your code is creating each different subset table with the same handle and the same data table name. Since JMP can not have 2 data tables with the same name, it will change the name for the second, third.......data tables. So you need to figure out how to handle such changes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
I have try using the associative array function, but it keep comes out error. Is there any function of JSL can solve my problem in order to edit my script?
Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
Are you looking to store the complete data table into the associative array, or as you specified in your earlier response, into a List? I was assuming that you just wanted to save the data table pointer or name to a list. Can you please clarify?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
Actually I want save the data table pointer to a list.
But I don't know how to point into the list, I have check the scripting guide book, and try write out the script, but it still cannot.
So, i'm trying using another method, but it still comes out error.
so, I really don't know how to store the data table into list.
Very sorry here, can you give me some hint on how to do it,?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
If you look at page 167 int the Scripting Guide, it will show you the different ways to asiging items into a list. You should be able to find a simple way to do that. Subscripting or Inserting are likly candidates I would think
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
I'd usually create the reports inside the same for loop that creates the subsets and close the subsets as soon as they were no longer needed. But you can create a list of open subsets then send the list a message. Internally, the list will repeat the message to each item in the list.
dt = Open( "$sample_data/big class.jmp" );
p = {"A", "B", "C", "D", "E"};
tableList = {};
For( i = 1, i <= N Items( p ), i++,
dt << Select Where( Starts With( dt:Name, p[i] ) );
tempDT = dt << Subset( output table name( "Subset" ), selected rows( 1 ), selected columns( 0 ), "invisible" );
Insert Into( tableList, tempDT );
);
tableList << Distribution( y( name, height ) );
Wait( 3 );
For( i = 1, i <= N Items( tablelist ), i++,
Close( tableList[i], nosave )
);
Close( dt, nosave );
You'll still want a loop to close the subset tables when you are done with them.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
Ian's answer is a much better approach than using a list. In the list apporach you have mutiple for-loops, one to build the list, and one (or more) to process the list. Ian is doing all the processing in a single for-loop, creating a graph and moving it to its final destination. He's also only creating one subset at a time, and closing it as soon as he is done with it. There's another advantage to Ian's approach: the meta-data about the subset is still available--you know the parameters used to create the subset have not changed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: How to store the data into list
It's very helpful.