Générer un tableau Delta pour calculer les écarts entre deux mesures de température.Je dispose d'un tableau de données combinant deux ensembles de données pour deux températures et plusieurs unités. Chaque unité est soumise à plus de 20 tests à ces deux températures.
Je dois générer un tableau delta pour chaque unité, qui calcule le delta entre temp2 et temp1 comme indiqué dans le tableau « Data_Table ».
Je reçois systématiquement la même erreur après la génération d'une table delta incomplète (voir ci-dessous).

l'erreur que j'obtiens

Mon tableau de données

Voici mon code ; si quelqu'un peut m'aider, je lui en serais très reconnaissant.
Names Default To Here(1);
dt = Current Data Table();
allCols = dt << Get Column Names(string);
tpColName = allCols[1]; // Always Column 1
dutColName = allCols[2]; // Always Column 2
testCols = {};
For(i = 3, i <= N Items(allCols), i++,
Insert Into(testCols, allCols[i])
);
// 2. Extract Unique Values
Summarize(dt, dutList = By(Column(dt, 2)));
Summarize(dt, tpList = By(Column(dt, 1)));
// 3. Setup Results Table
dt_delta = New Table("DUT Delta Results");
dt_delta << New Column("DUT", Character, Nominal);
dt_delta << New Column("Shift", Character, Nominal);
For(i = 1, i <= N Items(testCols), i++,
dt_delta << New Column(testCols[i] || " Δ", Numeric, Continuous)
);
// 4. Robust Calculation Loop
For(d = 1, d <= N Items(dutList), d++,
currDUT = dutList[d];
For(t = 2, t <= N Items(tpList), t++,
p1 = tpList[t - 1];
p2 = tpList[t];
// This forces a match even if your DUT/TestPoints are numbers
r1Mat = dt << Get Rows Where(
Char(Column(dt, 2)[]) == Char(currDUT) & Char(Column(dt, 1)[]) == Char(p1)
);
r2Mat = dt << Get Rows Where(
Char(Column(dt, 2)[]) == Char(currDUT) & Char(Column(dt, 1)[]) == Char(p2)
);
// Ensure exactly one row found for each point to prevent subscript errors
If(N Rows(r1Mat) > 0 & N Rows(r2Mat) > 0,
row1 = r1Mat[1]; // Explicitly take first found row as integer
row2 = r2Mat[1];
newRow = dt_delta << Add Rows(1);
dt_delta:DUT[newRow] = currDUT;
dt_delta:Shift[newRow] = p2 || " - " || p1;
For(c = 1, c <= N Items(testCols), c++,
colN = testCols[c];
v1 = Column(dt, colN)[row1];
v2 = Column(dt, colN)[row2];
If(!Is Missing(v1) & !Is Missing(v2),
Column(dt_delta, colN || " Δ")[newRow] = v2 - v1
);
);
);
);
);
dt_delta << Bring Window To Front;
Edit (jthi): added JSL formatting
Automatisation et scriptageRe: Générer un tableau Delta pour calculer les deltas entre deux mesures de températurePourriez-vous me fournir le tableau de données ?
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températurenewRow = dt_delta << Add Rows(1);
Ne renvoie pas le numéro de ligne. Si vous le modifiez comme suit :
dt_delta << Add Rows(1);
newRow = nrows(dt_delta);
Ça fonctionnera
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureMerci Jarmo, voir tableau ci-joint
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureMerci Jim, je vais utiliser le nouveau code, j'obtenais une table vide
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureÇa a fonctionné à merveille ! Je vais l'essayer sur un ensemble de données plus important. Merci Jim !

Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureCalcul confirmé également dans Excel, les données correspondent.

Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureSalut Jim, existe-t-il un script ou une fonctionnalité dans JMP qui me permette d'étendre toutes les colonnes numériques pour inclure les limites ? Ainsi, lorsque je génère des graphiques de variabilité, les limites sont prises en compte. Actuellement, tous les graphiques sont mis à l'échelle automatiquement en fonction des données uniquement. Merci.
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureDans un tableau de données JMP, chaque colonne possède des propriétés personnalisables. Un clic droit sur l'en-tête d'une colonne permet d'accéder à l'option « Propriétés de la colonne », affichant ainsi toutes les propriétés configurables. Les deux options qui vous intéressent sont « Limites de spécification » et « Axe ». Une fois définies, elles seront utilisées et affichées sur tous les graphiques concernés.
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureSalut Jim, cette solution peut fonctionner pour quelques tests, mais j'en ai environ 2 000 et il sera difficile de les traiter un par un. Existe-t-il un moyen de créer un script qui s'applique à tous les tests ? Merci.
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureVous pouvez le scripter. D'où viennent vos limites ?
Re: Générer un tableau Delta pour calculer les deltas entre deux mesures de températureMerci pour votre réponse, j'ai pu résoudre le problème. Au fait, mes limites sont normalement importées pour chaque colonne.