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. Now, there are a lot of messages for the data table that provide different ways to select rows. You can use the Go To Row message to select a specified row or the Select Rows message to select multiple specified rows. You can use the Select All Rows message if you want to select every row. If you want to find all rows that match some criterion, you use the Select Where message with a Boolean argument. And that criterion could be simple or compound. The Select Matching Cells message selects matching values within a data table, while the Select All Matching Cells message selects similar values across all open data tables. You use the Select Dominant message to find the rows with the most or least prevalent value -- this is also known as the Pareto frontier. Sometimes a data table has rows that have already been excluded, hidden, or labeled, so there are messages to select these rows as a group, And finally, you can randomly select a specific number or fraction of rows. Now, suppose you want to find out which rows match some criterion, but you don't want to select those rows. In that case, you use the Get Rows Where message with a Boolean argument for the criterion. You can use the Get Selected Rows message to determine which, if any, rows are currently selected. Both of these functions return a column vector of the row numbers. You can scroll the data table using the Next Selected or Previous Selected messages. And the Clear Select message deselects any currently selected rows. So, row states are fundamental to controlling many behaviors in JMP. As I mentioned a little earlier, in order to change a row state, you have to select the row or rows and then send a message to the data table to change the row state of those currently selected rows. There are a number of messages available for controlling row states, including Hide, Exclude, and Label, which take Boolean arguments, and Colors and Markers, which take arguments to indicate which color or marker you want to use.