Le script de test Dixon Q ne gère pas les lignes masquées/exclues (problème d'état des lignes).Salut l'équipe,
J'utilise le script JSL de test Q de Dixon partagé dans cet article.
J'ai constaté que le script échoue lorsque des lignes sont marquées comme masquées et exclues, ce qui constitue un flux de travail standard JMP pour le filtrage des données.
Problème:
- Lorsque des lignes sont exclues, le script génère une erreur :
«"L'insertion d'une valeur vide doit concerner une ligne ou une colonne entière lors de l'accès ou de l'évaluation de 'Assign', yRow[del]"»
Observation:
- Le script extrait toutes les lignes à l'aide de « Get As Matrix ».
- Tente ensuite de supprimer les lignes exclues.
Cela entraîne une incohérence d'index entre « yVal » et « yRow ».
Comportement attendu :
Le script doit respecter l'état des lignes JMP (comme la plateforme de distribution) et ne fonctionner que sur les lignes non exclues.
Solution de contournement :
- La suppression définitive des lignes fonctionne
- La sélection de lignes visibles fonctionne
Cependant, aucune des deux solutions n'est idéale dans les flux de travail réglementés où l'exclusion de lignes est préférable.
Demande:
Ce script pourrait-il être mis à jour pour gérer correctement les lignes exclues ?
Vous trouverez ci-joint des captures d'écran pour référence.
Merci,
Automatisation et scriptageRe: Le script de test Dixon Q ne gère pas les lignes masquées/exclues (problème d'état des lignes)Modifier la ligne 93 à partir de
yRow = 1 :: N Row( yVal );
à
yRow = (1 :: N Row( yVal ))`;
Je n'ai pas vérifié si les résultats sont corrects, mais au moins une erreur a été générée.
Re: Le script de test Dixon Q ne gère pas les lignes masquées/exclues (problème d'état des lignes)Salut @jthi ,
Merci encore pour la solution — elle a parfaitement fonctionné.
Si possible, pourriez-vous m'expliquer plus en détail comment la transposition de « yRow » résout le problème des lignes exclues ? J'aimerais mieux comprendre le fonctionnement sous-jacent.
Merci d'avance!
Salutations,
Sai Kumar
Re: Le script de test Dixon Q ne gère pas les lignes masquées/exclues (problème d'état des lignes)Si vous affichez yval et yrow, vous constaterez qu'elles ne sont pas similaires (sauf si vous transposez yrow). Vous pouvez également utiliser la fonction Dim() sur les matrices pour observer leurs différences.
//:*/
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];
J'ai donc fait une supposition en me basant sur le message d'erreur à peu près correct.
Inserting an empty must be to whole row or column in access or evaluation of 'Assign' , yRow[del] = /*###*/[] /*###*/
Je pense que vous pourriez aussi le faire sans transposer.
yRow[0, del] = [];
Guide de programmation > Structures de données > Matrices en JSL > Indices dans les matrices

Re: Le script de test Dixon Q ne gère pas les lignes masquées/exclues (problème d'état des lignes)Le test Dixon Q est disponible en tant qu'extension JMP Marketplace. Voici comment l'exécuter :
Installez le module complémentaire
- Rendez-vous sur la place de marché JMP : https://marketplace.jmp.com/appdetails/Dixon+Outlier+Tests
- Téléchargez le module complémentaire et double-cliquez sur le fichier pour l'installer.
Remarque : ce module complémentaire nécessite JMP 17 ou version ultérieure (jusqu'à JMP 20).
Re: Le script de test Dixon Q ne gère pas les lignes masquées/exclues (problème d'état des lignes)Ce bug a été découvert lors de la modernisation de l'ancien script pour créer l'extension pour le JMP Marketplace. (Merci à @txnelson pour la publicité !) La solution est exactement celle suggérée par @jthi .