Limpiar datos
Aprender más
Ver es comprender con JMP. Software estadístico para explorar datos de forma dinámica. Importar datos (3:42)Limpiar datos (5:11)Visualizar y resumir datos (4:02)Explorar distribuciones (3:27)Explorar relaciones (3:06)Generar un tablero (2:04)Guardar y automatizar el trabajo (1:41)Compartir resultados dinámicos (1:53)Publicar resultados (3:18)
Hi all, I thought you'd be interested in a new book club hosted by the American Statistical Association. We've got two different formats of the club. For some months, we are discussing an entire book in one hour! Then in the fall, we will have a book club like the JMP club where we read a book together and discuss chapters over multiple weeks. We are communicating on LinkedIn: https://www.linkedin...
Thanks to all who joined us! Here's a copy of the journal I used to show JMP tips and tricks. There are scripts in the journal to recreate most of what was discussed, but please reach out to me if you have any questions.
Bonjour à tous !
J'espère que vous allez bien !
Je suis à la recherche d'une façon d'automatiser le remplissage d'un diagramme circulaire à plusieurs niveaux avec des données de type caractères. J'ai deux niveaux à faire apparaitre : le niveau 1 -> nom du groupe, le niveau 2 -> descripteur
Pour le coup j'ai déjà une table avec ces deux colonnes. Je vous mets en PJ un exemple du rendu que je souhait...
Return to JMP Federal Government User Resources Page
Return to JMP Federal Government User Resources Page
Return to JMP Federal Government User Resources Page
Return to JMP Federal Government User Resources Page
Return to JMP Federal Government User Resources Page
Return to JMP Federal Government User Resources Page
Return to JMP Federal Government User Resources Page
Return to JMP Federal Government User Resources Page
Hi all, This years UK Users Group Meeting was originally planned to be a physical meeting that should have been held in Liverpool at the MIF. Coping with a new situation the UK steering committee turned it into a virtual event because for many people it was not possible to travel. We would like to thank the presenters for their great contributions as well as the many loyal and new users who a...
Beginning with JMP 16, JMP offers the ability to interactively compare data tables by comparing columns with different names showing the results in a table. Highlights Compare Data Tables utility has a more flexible interface with increased functionality to align rows with a key rather than automatically matching rows and compare columns with different names. ...
See how to use the Explore Outliers utility, with emphasis on finding missing values and working with the Nines report and High Nines (missing) values. JMP 16 updates include: New Robust PCA Outliers utility (which replaces Multivariate Robust Outliers) is included in the Explore Outliers platform Multivariate Robust Outliers continue to be supported by JSL only and c...
You can use the Sample Size Explorers to help determine the number of units to test in a study of a new material. Suppose you are interested in demonstrating that the flammability of a new fabric being developed by your company has improved performance over current materials. The previous testing indicates that the standard deviation for the time to burn of this fabric is 2 ...
So, what are scripts? JMP is designed to be very interactive but that's not the only way to work with it. You can also use a script to communicate with JMP in order to complete an analysis or task. A script uses the JMP Scripting Language, or JSL, to convey what you want to use in JMP and how you want to use it, in words rather than through mouse-clicks. Although using scripts is differ...
So in this demonstration, I'm going to illustrate the agreement between the interactive actions and the elements in the corresponding script. And I'll do that by creating a scatterplot with two continuous variables and then fit a trend line to the data. And I'm going to note the steps that are involved in the process. So I have JMP open. And I've opened the course journal, which is call...
This demonstration is going to introduce two examples of how scripts can be used. In one, we'll make new columns and perform analyses with them. And in the other, we'll use a dialog box to generate a custom report. In the course journal in Section I'm going to click Reaction-Injection Molding Temperature Data. I'll go ahead and make the timestamp column wider so we can read the whole va...
Now, my second example is going to demonstrate a script that makes a dialog box for selective processing to make a custom report. So the user will be able to select a range of dates and process parameters and make a new data table with the custom table variables and scripts, based on user input. So I'll return to the course journal and click Process Data. And again, we have some kind of...
A computer program can be a set of step-by-step instructions, which is known as procedural programming. But a different way of scripting is called object-oriented programming. And this kind of programming is a conceptual framework for software design that views software development in terms of interacting objects instead of just sequential procedures. And it also proposes that software ...
Scripts are typically meant to be run repeatedly over time, and possibly in different situations. In order to maximize the flexibility of scripts, JMP provides several ways for you to save them. You can save a script in a standalone JSL source code file and then open it and run it from the Script Editor or the Debugger. You can save a script to the data table or as a data column formula...
A great feature of JMP is that it can generate a script for you from an existing object, like a data table or an analysis platform. This can be really helpful. One thing it lets you do is exactly repeat an analysis after some change to the data, either now or in the future. Or, if you perform a series of analyses and have JMP save those scripts to the data table, you can share the data ...
So this demonstration, we'll look at the various ways that you can create and save JMP scripts. So I'll begin by interactively creating a new column with a formula where I calculate the standardized value of the tensile strength of concrete. So in the journal in section I'll click Concrete Strength Data. So to create my new column of the standardized strength, I'll go to the Columns men...
In order to write your own scripts, you need to familiarize yourself with the elements that a script can contain: names, variables, functions and operators, numbers, character strings, punctuation, and comments. Let's take a look at each of these in turn.
Names are important in JMP, and especially in scripting. In fact, everything in JMP has a name! This includes objects, menu commands, functions, and messages to objects. And the variables in your scripts also have names. Names have to follow certain rules or syntax. A name has to start with either an alphabetic character--A through Z, lowercase or uppercase--or an underscore. So, names ...
OK, so now let's talk about variables. You can use variables to store values that aren't constant from one time a script runs to another. These values can be data of any type, data structures of any kind, or references to another object. Unlike in many programming languages, JMP variables don't need to be declared, or listed at the start of the script, and they're not limited to storing...
OK, so let's look at a few examples of creating variables. Suppose you want to create a variable named a, and you want to assign the value of to it. This assignment statement (a = creates a global variable with the value of What if you want a local variable named a? To create a local variable, you use the Local function, which takes two arguments: the first argument is a name or list of...
Functions are a vital element of the scripting language, so let's discuss them. You call a function when you need it, and every function returns a result. To call a function, you type the function name followed by two matching parentheses -- the matching parentheses are what tells JMP that a name is a function. For example, Names Default to Here followed by matching parentheses that con...
So, it might surprise you to learn that every script is actually a single function along with its arguments. And it might seem at first like this requirement would limit how much a script can do. But remember that a function can have arguments and that some of those arguments can be functions as well. For example, you might want to add the square root of to the sine of The Add function ...
Numbers are an essential form of data, and can be expressed as integers, decimals, or in scientific notation. Dates and times are also represented by a number. A missing numeric value is represented by a period. Let's go into a little more detail about dates, times, and durations. These are all numeric values that represent a number of seconds. Specifically, dates are defined as the num...
Some data are text that are represented by character strings. Character strings are delimited by double-quotation marks, and these delimiters are not part of the text. So, what if you need to include double quotation marks as part of your string value? To do that, each of the embedded quotation marks has to be preceded with the escape sequence of a backward slash and an exclamation poin...
Now let's talk about punctuation in your scripts. Commas separate items-- they separate items in lists, rows in matrices, and arguments in a function or message. Parentheses serve several purposes. They're used to identify a name as a function. They surround the arguments of a function. And, they can control the order of evaluation in expressions.
Next, let's talk about comments. It can be really helpful to include comments in your scripts. Comments aren't executed when the script runs, so they could be notes to yourself (for example, documenting the script for future updates or maintenance), or they could be notes to others who might use your script (providing instructions, for example). You might also comment out a portion of y...
Well now, let's take a quick look at local variables and using the local function. So I'm going to clear the contents of the Script Editor and I'm going to type local and open parentheses. And recall that the first argument is a list of the local variable names and I can either make the assignments in that list or that could be part of the JSL expression that is the second argument to t...
So next, let's talk a little bit about date and time functions. I'm going to clear the contents of the Script Editor window. I'd like to clear the log as well. And I do that by right clicking in the Log window and selecting Clear Log. So remember that dates and times are stored as the number of seconds since midnight January And you can store those in a variable. And we can also use dat...
So we've been making use of the log to look at the results of all of the lines of code that we've run. But we can also control what shows up in the log. So let me clear that and clear the Script Editor window. So one thing I could do, if I am working with global variables, which, of course, I have been, is I can type show globals open close parentheses. I don't have to have an argument,...
Now let's discuss the concept of objects. Many of the capabilities of JMP are available to your script through built-in objects. Every JMP object knows how to perform certain actions or tasks. And some examples of JMP objects are data tables, data columns, platforms, and even JMP itself. Now in order to use an object in your script, the script first needs to instantiate the object, or c...
An important data structure in JMP is a list, which is a general-purpose storage container that can store any number of items. The items can be any type of data such as numbers, character strings, object references, or other lists, and the items in the list don't need to be the same type. You can create a list with the List function, or with the curly brackets operator. Items in a list ...
Lists are dynamic. You can easily add items to or remove items from a list as necessary. You use the Insert function or the Insert Into function to add items to a list. By default, the items are added at the end of the list. Optionally, you can include an argument to specify the position of the item you're adding. The Insert function returns a new list with the added item but doesn't ch...
Another useful data structure is a matrix, which is a rectangular array or table of numeric values or missing values. You can use a matrix to store a single number, a column of numbers, (sometimes called a column vector,) a row of numbers, (or row vector,) or an entire table of numbers. A matrix can be empty -- that is, have no rows or columns. An empty matrix can be useful for collecti...
You can use the Matrix function to create a matrix. And this function takes a list of lists as its argument, where each sub-list specifies a row. You can also use the square brackets operator to create a matrix. When you use this operator, you enter the values directly, without using lists. Instead, you separate the values in different rows with commas, and the values in different colum...
So this demonstration is going to look at some of the basic features of lists and matrices. So I'm going to start with lists. And I'm going to get a new script editor window. So again, the keyboard shortcut is Ctrl+T. And I will resize and rearrange that. Let me go ahead and bring the log in front of the journal. And I'm going to create a variable I'll call my list. And I'll assign that...
So, although your scripts follow a strict syntax, there's no strict style imposed by JMP in the scripting language. Remember that JMP ignores whitespaces and letter case. So, style, then, is important for legibility. Let's take a look at an example. The script shown here follows the syntax rules and will run correctly. But the style -- or lack of style -- make it difficult to read and u...
Scripts are procedural. In other words, JMP evaluates a script beginning with the first line and continuing until the last line. Some scripts require JMP to repeat an action multiple times. But you don't repeat the code for that action in your script for every time you want JMP to perform the action. Instead, you use special iteration functions to repeat that portion of the code. In som...
So, the For function provides the most general form of iteration. This function has four required arguments, and each one is a JSL expression. And as usual, these four arguments are separated by commas. JMP evaluates the first argument to the For function only once. Generally, you use this first argument to initialize a variable that you can use as a counter, or index, in each iteration...
Another way to iterate is with the While function. This function takes only two arguments: the test, and the body. So, if you want to use a counter, index, or flag variable in either argument, you need to initialize those before you call the While function. JMP evaluates the first argument and interprets it as a Boolean result in order to determine if the iteration should continue. If t...
Expressions are an important concept, and an integral part of the JMP scripting language. But what is an expression? Well, it's a section of JSL code that accomplishes a task. JSL expressions hold data, manipulate data, and send commands to objects. An expression can be defined as any combination of variables, constants, and functions or operators that can be evaluated. It might be as s...
So, the Script Editor is a really powerful tool for both reading and writing your scripts. You can also evaluate just one line of code or a selection of code to verify the behavior as you develop your script. And you can hover over a variable name to determine its current contents. You can also use the JMP Log to examine the results of evaluation or any error messages. The Debugger is a...
So this demonstration illustrates how to use the For function for iteration. And so far, we've used the Script Editor with the log to test our scripts and observe the results. But now we want to look at that using the debugger. So I have a script editor window open, and I'm going to start by typing Names Default to Here. And I'll put that Boolean I'm not adding spaces right now. I'm goi...
So, you learned about the For function, which you can use for practically any kind of iteration. There's also a special function for iterating down the rows of the data table, and that's the For Each Row function. This function only requires one argument, which is the body or code that you want JMP to evaluate row-wise. For Each Row iterates down the rows of the data table until it come...
One special case of iteration is the algebraic sum. The Summation function requires three arguments. The first argument is evaluated before the summation begins. It's generally used to initialize a counter or index variable. The second argument specifies a limit for the counter or index. And the third argument is the quantity to be added to the sum. For example, calling the Summation fu...
Another special case of iteration is the algebraic product. The Product function is similar to the Summation function, and also requires three arguments. The first argument is evaluated before the multiplication begins, and is generally used to initialize a counter or index variable. The second argument specifies a limit for the counter or index. And the third argument is the quantity t...
In this demonstration, we'll see how to iterate across rows using the for each row function. So I'm going to get the Big Class data from the script in section And I'm going to write a script that's going to create a new column with the BMI, or Body Mass Index, values. And I'll use the for each row function to populate that. And the body mass index is calculated by multiplying the weight...
Remember, scripts are procedural. JMP begins by evaluating the first line and continues through until it ends with the last line. This kind of evaluation makes sense for the parts of your script that always have to be evaluated. This evaluation is unconditional. But some parts of your script should only be evaluated under specific cases. This evaluation is conditional. And your script h...
The most general way to test conditions is to use the If function. Let's take a look at it in the context of iterating down the rows of a data table to populate a column called "grade" using the For Each Row function. In fact, we'll look at each of the conditional functions in the context of the For Each Row function. Now, the number of arguments for the If function varies, but at least...
So let's look at an example of using the If function. Suppose you have data from a public school in the US with grade levels for each student. Some grade levels are grouped into schools, and you want to use the numeric data to group the students by school. This is an example of binning data, where the bins represent ranges of values, and the If statement is an easy way to assign the dif...
In this demonstration, we'll take a look at Boolean functions, as well as the If function I'm going to get a script editor window. And again, the keyboard shortcut is Ctrl+T or you can go to the File menu, use the toolbar. Many different ways to get that new Script Editor window. And let me bring the log in front of the journal. Back in the Script Editor window, I'm going to type the co...
It's common to have conditions that are limited to specific values, and these values could be numeric or character data. You can use the Match function in this situation. The Match function is a specialized conditional function that takes three or more arguments. The first argument is evaluated and used as the value to be matched. The second argument is evaluated and interpreted as a Bo...
In this demonstration, we'll see how to use the match and choose conditional functions. So in the course journal, in section I'm going to click on Concrete Strength Data. And so the Concrete Strength data includes this column called Concrete Type, which indicates the brand of concrete mix and whether it was reinforced or not, if it was just standard during whatever this test was. And le...
Working with data tables is, of course, an important part of working with JMP. The data table enables JMP to access your data through various analysis and graphing platforms. You can enter your data directly into a JMP data table, and you can save that data table for future access. Or, you might have data saved in a different file format, or in a relational database. In those cases, you...
In order for your script to open your data table, it has to tell JMP where to find the table. So, you need to understand how file paths work. The path to a file starts from the root (or disk drive) and continues with the sequence of folders that leads to the folder where the file is saved. So, the sequence reflects the series of folders that JMP has to navigate, starting at the root, in...
Often, you want the script user to be able to choose a directory or file when the script runs. This is how your script can obtain the absolute file path, no matter who's using the script. You can use the Pick Directory function with an optional prompt argument, and JMP will open the Browse for Folder dialog and allow the user to navigate to and select a directory. The optional prompt ap...
So here we're going to see how to use scripts to open JMP data tables. So I'll get a new Script Editor window and I'm going to use the pick directory function to prompt the user when the script runs to navigate to a directory or folder. And I'm going to store that result in the variable myPath. And here notice with the variable name, I'm using an example of what we call camel case where...
When your data are saved in a computer file that's not a JMP data table, you can import it into JMP in order to create a JMP data table. The original source file might be a text file, a Microsoft Excel workbook, or a file saved from a relational database. Whether your data are stored in a JMP data table or some other file format, you use the Open function to access your data. When you u...
Let's look at an example. Suppose you have a text file that specifies the column names on the first line and then follows with a row of data on each of the subsequent lines. The values are separated by a character- in this case, a comma. JMP is likely to recognize this common format without help from you but you can force the correct format with optional arguments. The End of Field argu...
Once your script has imported a data table, or made changes to an existing JMP data table, you probably want to save the table. To do that, you send a Save or Save As message with a path and file name argument to the data table through an object reference. After your script has finished working with the data table, you can close it -- and in fact, it's a good idea to close it if your sc...
A script often needs to deal with individual data columns and rows. Your variables for analysis are represented by the data columns. The observations for these variables are represented by the rows in the data table. And scripts can act on data columns and rows through object messages, functions, and subscripts.
To send a message to a data column, you have to be able to refer to the column. There are several ways to refer to columns, some of which also return column object references. You can simply refer to a column by name, using the colon prefix to make sure JMP scopes the name as a data column. You can also combine the column reference with a data table reference using a colon too. For exam...
Data columns can have a variety of attributes associated with them. Your script might need to specify these attributes if it's creating new data columns, or it might need to change the attributes of an existing data column. Column attributes include things like the type of data, the modeling type, the format for numeric data, the current values in the column either as literal values or ...
In addition to the various attributes, data columns have properties associated with them. A column's properties affect how JMP uses it. Examples of column properties include formulas, notes, range and list checks, value labels, value order, axis specifications, and units. And there are many more properties with specialized applications. We'll illustrate the examples here as messages to ...
When you send the Get Script message to any JMP object, what's returned to the log is a script that will create an identical object. So this is a great way to learn the proper syntax. For example, you could add a property to a column interactively, and then send the Get Script message to get the code that creates that property. You can then use that code, or a modified version of it, in...
Many of the operations you perform on data tables require selecting rows. Selecting rows is often necessary for the desired behavior with analysis and graphing platforms. So if you want to change the row states of some rows to hidden or excluded, for example, you need to select those rows first. Then you would send a message to the data table, and only the selected rows would respond. N...
You use the New Table function to create a new data table. Because there are no required arguments, you can create an empty, untitled data table by just using the function with nothing in the parentheses. But, there are several optional arguments that you'll typically use. The first unnamed argument is a character string that sets the name of the data table. There are also named argumen...