Dixon Q Test Script Does Not Handle Hidden/Excluded Rows (Row State Issue)Hi Team,
I am using the Dixon Q Test JSL script shared in this post.
I observed that the script fails when rows are marked as Hide and Exclude, which is a standard JMP workflow for filtering data.
Issue:
- When rows are excluded, the script throws:
«"Inserting an empty must be to whole row or column in access or evaluation of 'Assign', yRow[del]"»
Observation:
- The script extracts all rows using "Get As Matrix"
- Then tries to remove excluded rows afterward
- This leads to index mismatch between "yVal" and "yRow"
Expected behavior:
The script should respect JMP row states (like Distribution platform) and operate only on non-excluded rows.
Workaround:
- Deleting rows permanently works
- Subsetting visible rows works
However, both are not ideal in regulated workflows where row exclusion is preferred.
Request:
Could this script be updated to handle excluded rows properly?
Here I'm attaching screenshots for your reference.
Thanks,
Automation and ScriptingRe: Dixon Q Test Script Does Not Handle Hidden/Excluded Rows (Row State Issue)Change line 93 from
yRow = 1 :: N Row( yVal );
to
yRow = (1 :: N Row( yVal ))`;
I haven't verified if the results are correct, but at least it throw an error.
Re: Dixon Q Test Script Does Not Handle Hidden/Excluded Rows (Row State Issue)Hi @jthi,
Thanks again for the fix — it worked perfectly.
If possible, could you please elaborate a bit on how transposing "yRow" resolves the issue with excluded rows? I’d like to better understand the underlying behavior.
Thanks in advance!
Regards,
Sai Kumar
Re: Dixon Q Test Script Does Not Handle Hidden/Excluded Rows (Row State Issue)If you print yval and yrow, you see they are not similar (unless you transpose yrow). You can also use Dim() on the matrices to see how they differ
//:*/
show(yval,yrow);
/*:
yval = [59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59, 61, 62, 65, 63, 62, 63, 64, 65, 64, 68, 64, 69, 62, 64, 67, 65, 66, 62, 66, 65, 60, 68, 62, 68, 70];
yrow = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40];
Then I just made a good guess based on the okayish error message
Inserting an empty must be to whole row or column in access or evaluation of 'Assign' , yRow[del] = /*###*/[] /*###*/
I think you could also do it without transposing
yRow[0, del] = [];
Scripting Guide > Data Structures > Matrices in JSL Scripts > Subscripts in Matrices

Re: Dixon Q Test Script Does Not Handle Hidden/Excluded Rows (Row State Issue)The Dixon Q test is available as a JMP Marketplace add-in. Here's how to get it running:
Install the Add-In
- Go to the JMP Marketplace: https://marketplace.jmp.com/appdetails/Dixon+Outlier+Tests
- Download the add-in and double-click the file to install it.
Note: This add-in requires JMP 17 or later (up to JMP 20).
Re: Dixon Q Test Script Does Not Handle Hidden/Excluded Rows (Row State Issue)This bug was discovered when I modernized the old script to create the extension for the JMP Marketplace. (Thanks @txnelson for the advertisement!) The solution is exactly what @jthi suggested.