Traitement des données manquantes lors du traçage de graphiques de variabilité avec plusieurs groupes Y et BY
| m1 | m2 | m3 | m4 | m5 | m6 | m7 | m8 | Dispositif | Famille |
| 1 | 2 | -2 | -1 | -3 | 2 | -1,5 | 0.5 | D1 | F1 |
| 2 | -2 | 2 | 3 | 2 | -1 | 1 | 2 | D2 | F1 |
| 1,5 | 2 | 2,5 | 2 | 0.5 | 1 | -1 | -1,5 | D3 | F1 |
| -1 | 1 | -1 | -1 | -0,5 | 1 | 0.5 | -1 | D4 | F1 |
| 2 | -3 | 1 | -2 | 1 | -2,5 | 0.5 | -1 | D5 | F1 |
| -3 | -0,5 | -1 | 1,5 | . | . | -1 | 1 | D6 | F2 |
| 2,5 | 1 | 0.5 | 1,5 | . | . | -0,5 | 2 | D7 | F2 |
Je vais utiliser ce tableau comme exemple. Supposons que m1-m8 soient des paramètres de test de certains périphériques. Dans la table réelle, le nombre de paramètres de test demandés peut être différent. Je souhaite tracer des graphiques de variabilité à l'aide de JSL pour ces paramètres sur le périphérique pour différentes familles.
En JSL, j'ai fait
myVC = Variability Chart(
invisible,
Y(Eval(parameterlist)),
X(:Device),
By(:Family)
);
J'ai regroupé les paramètres m1-m8 en liste de paramètres. Toutefois, en raison des données manquantes, le code entraînerait une erreur lorsqu'il tente de tracer les graphiques pour F2.
Existe-t-il un moyen de gérer les données manquantes? Je veux que JMP continue à tracer les graphiques de variabilité pour F2 pour les paramètres contenant des données. (m1, m2, m3, m4, m7, m8 dans ce cas). Après cela, je veux que JMP affiche les tableaux de variabilité par famille et les enregistre en tant que rapport HTML.
F1 - m1
.
.
F1 - m8 (Ordre dans lequel les diagrammes de variabilité sont montrés dans le rapport)
F2 - m1
.
.
F2 - m8
Notez que le nombre de paramètres de test, le nombre de périphériques et le nombre de familles différentes peuvent varier en fonction des requêtes.
Re: Traitement des données manquantes lors du traçage de graphiques de variabilité avec plusieurs groupes Y et BYAgréable! Bien que j'ai remarqué que AsColumn dans le tableau de variabilité ne semble pas fonctionner pour moi. Le changer en colonne (liste de paramètres [j]) fonctionneRe: Traitement des données manquantes lors du traçage de graphiques de variabilité avec plusieurs groupes Y et BYXiangLoh,
Vous voudrez peut-être revoir un article précédent
https://community.jmp.com/t5/Discussions/JSL-Generate-xy-Plot-that-loops-through-columns-with-different/mp/56020#M31438
Les recommandations que j'ai faites là-bas, je les appliquerais à vos données. Voici les étapes / pseudo-code:
- créer une liste de paramètres (déjà fait)
- Exécuter, résumer (fgrp = By (: Family)); le fgrp est la liste des valeurs familiales
- nw = Nouvelle fenêtre ("Tests", vl = VListBox ());
for( i=1, i<=nitems(fgrp), i++,
fam = fgrp[i];
for(j=1, j<=nitems(parameterlist), j++,
param = parameterlist[j];
idx = dt << get rows where(:Family == fam);
// compute the number of non-missing values for column(param)[idx]
// if that number is greater than 0 or some minimum you set then
myVC = dt << Variability Chart( invisible, Y ( AsColumn(param) ) , X(:Device), By(:Family), where(:Family==fam) );
get rid of the where where textbox and append to VL
); //end j
); //end i
Cette méthode vous donne beaucoup de flexibilité. Vous pouvez enregistrer un code HTML différent pour chaque famille ou modifier l'ordre et tracer par variable, puis par famille. Au lieu du code des 2 étapes commentées, vous pouvez utiliser un Essayer()
Try( myVC = dt << Variability Chart( invisible, Y ( AsColumn(param) ) , X(:Device), By(:Family), where(:Family==fam) );
// get rid of the where where textbox and append to VL
, //else do nothing
Show( "variable " || param || " for Family == " || fam || "has no valid data." )
);
Cela ressemble à beaucoup de travail, mais j'ai constaté que la plupart des scripteurs après l'avoir fait une fois, et réalisent le nombre d'options offertes par cette méthode, ils l'utilisent souvent.
Bonne chance!