cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
] />

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
Saikumar
Level I

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,

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

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 

jthi_0-1777650997654.png

 

-Jarmo

View solution in original post

5 REPLIES 5
jthi
Super User

Re: 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.

-Jarmo
Saikumar
Level I

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

jthi
Super User

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 

jthi_0-1777650997654.png

 

-Jarmo
txnelson
Super User

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

  1. Go to the JMP Marketplace: https://marketplace.jmp.com/appdetails/Dixon+Outlier+Tests
  2. 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). 

Jim

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.

Recommended Articles