I am just getting started in JMP. I have a very basic current need. I need a quicker way to do a calculation and visualization of motor data files I'm recording. I am tired of doing it manually in excel everytime. A friend suggested JMP as a way to do it consisitently and quickly without having to get into Excel Macros. I downloaded the trial and am spending a couple days to see if it can do the job before convincing my boss to purchase. I'm very happy how quickly I was able to add calculated columns and graph the data. However I would really like to be able to load a data file (or series of files) and click a button that will add the columns and make the simple plot. I know the answer lies with scripts. From the graph builder I saved the script, but that script only shows up in the data window I already completed the task with. Everytime I open a new file, that script is no longer available. Furthermore, I'm pretty sure that script only makes the plot. How do I save a script to add the two columns I need when I open a new file?
Sounds like you might want to put everything into one script. If so, the example below should get you started (though it uses a CSV file).
Do 'File > New > New Script' to open a window, copy the code below, and paste it in. You can run it as it is (with 'Edit > Run Script'), and then adapt it to your case. Do 'File > Save' to save your new script file.
To learn a little about JSL, try 'Help > Books > Scripting Guide'.
Names Default To Here( 1 ); // Read in a sample csv file dt = Open( "$SAMPLE_IMPORT_DATA/Book1.csv" ); // Add a formula column dt << // To get this code, build your formula 'by hand', then do 'File > New > New Script', // type the command 'columnRef << getScript', and then 'Edit > Run Script'. Then look // immediately below or in 'Window > Log' to get the result. In this case, the command // was: ':Formula << getScript'. New Column( "Formula", Numeric, "Continuous", Formula( (:Name( "1" ) + :Name( "2" )) / :Name( "3" ) ) ); // Now use Graph Builder 'by hand', and get the JSL code it makes for you . . . dt << // . . . and paste it here Graph Builder( Size( 531, 452 ), Show Control Panel( 0 ), Variables( X( :Name( "1" ) ), Y( :Formula ) ), Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) ) );
@wbwing every scripting language requires a learning curve. @ian_jmp provided the basics: Open(), New Column() and GraphBuilder() for your scripting tasks. But you will need more. My experience is that JSL, the JMP Scripting Language, has a less steep learning curve compared to other languages due to its extensive Scripting Index found in the main menu, its forgiving syntax, and Save Script options for its rich set of graph and analysis platforms. However, JMP does not provide a macro recorder, therefore it requires the scripter to learn the syntax (valid instructions) for point and click commands.
I have attached a simple script and 4 Excel files to play with. The script was created using JMP 14. The screenshot below shows the interactive display window. It has two action buttons, Select File and Journal. The script starts the file search in your downloads directory. Good luck with your quest to have JMP available.
This is an excellent starting point. Thank you! So to use on a new csv (the data type of the files actually), I open the script in the editor, change the file name, and run the script from the editor? It is also unclear to me how to set the import settings for the data file using the script. Like setting the delimiter (semicolons in this case) or the line for column labels and row the data begins.
If you have a bunch of .csv files of the same 'type' (meaning different contents, but laid out in the same way), use 'File > Open', navigate to one of them, then step though the import wizard 'by hand' making whatever choices you need to to read the contents correctly.
If all goes well you will get a JMP table. This table will have a 'Source' script, which is the JSL that tells JMP how to read the source file. If you right click on the little green 'run' arrow of this script, you can select 'Edit' to inspect the code. You can then cut and paste this into the code given above. To use it with a different file of the same type, just change the location of the file as defined in the 'Open()' command.
If you want to let a user pick thr file to process, look in 'Help > Scripting Index' for 'Pick File()'.
The attached script is a modification of the previous script: