Script pour le traitement des tables JMP14Bonjour. Pourriez-vous m'aider à écrire un script qui prend la table d'origine et en crée une nouvelle ? La table d'origine comporte deux lignes pour chaque mesure de température d'échantillon. Dans la table de sortie, nous n'utilisons qu'une seule ligne par échantillon et calculons le nombre de jours entre les deux mesures et le delta de température.
Automatisation et scriptsles fenêtresRe: Script pour le traitement des tables JMP14Pourriez-vous fournir les données d'exemple sous forme de tableau JMP afin que nous n'ayons pas à les créer à partir de l'image (les formats peuvent avoir un impact important sur le script)
Re: Script pour le traitement des tables JMP14Vous pouvez ajouter deux colonnes de formules qui calculent le maximum - minimum pour chaque échantillon (température et date) :

Ou exécutez le script ci-dessous pour obtenir votre exemple de tableau avec des colonnes de formules.
New Table( "Example",
Add Rows( 8 ),
New Column( "Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 2, 3, 3, 99, 99] )
),
New Column( "Temperature",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [199, 210, 201, 217, 200, 215, 199, 220] )
),
New Column( "Temp Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Col Maximum( :Temperature, :Sample )
-Col Minimum( :Temperature, :Sample )
)
),
New Column( "Date (ISO 9601 format)",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 10 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3795552000, 3798576000, 3795552000, 3798748800, 3795552000, 3798662400,
3795552000, 3798921600]
)
),
New Column( "Date Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Date Difference(
Col Minimum( :"Date (ISO 9601 format)"n, :Sample ),
Col Maximum( :"Date (ISO 9601 format)"n, :Sample ),
"Day"
)
)
)
)
Et puis un petit résumé vous donnera le tableau que vous recherchiez :

Re: Script pour le traitement des tables JMP14Bonjour Jarmo. Merci pour votre soutien. Veuillez trouver ci-joint.
Re: Script pour le traitement des tables JMP14Bonjour Paul. Merci pour votre idée. Cette approche fonctionnera-t-elle si le delta de température est parfois négatif et que c'est critique pour moi ?
Re: Script pour le traitement des tables JMP14Ok. J'ai vérifié, ça ne fonctionne pas. Pouvons-nous utiliser une autre formule pour choisir la mesure de température à partir de la date ultérieure et de la date antérieure ?
Re: Script pour le traitement des tables JMP14Vous pouvez utiliser les formules suivantes
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2 - :Temperature)
et
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) / In Days(1)
pour calculer les deltas.

Créez ensuite une nouvelle table sans les 0 lignes (n'incluez pas de formules dans cette table) ou supprimez les formules et supprimez ces 0 lignes.

Je pense que ce script devrait fonctionner pour JMP14 (je ne peux pas le tester car je n'y ai pas accès)
Names Default To Here(1);
dt = Open("$DOWNLOADS/source table.jmp");
dt << New Column("Time Delta", Numeric, "Continuous", Formula(
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2
- :Temperature)
));
dt << New Column("Temperature Delta", Numeric, "Continuous", Formula(
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) /
In Days(1)
));
dt << Select Where(:Temperature Delta == 0) << Invert Row Selection;
dt_subset = dt << Subset(
Copy formula(0),
Selected Rows(1),
Columns({"Sample", "Time Delta", "Temperature Delta"}),
Output Table("Deltas")
);
dt << Clear Select;Re: Script pour le traitement des tables JMP14Merci Jarmo. Laissez-moi essayer.
Re: Script pour le traitement des tables JMP14Jarmo, merci beaucoup pour ta solution. Elle fonctionne.
Mais j'ai encore deux questions :
1. Pourriez-vous m'expliquer à quoi sert la formule de calcul de la moyenne mobile ? Je veux juste comprendre la logique de votre approche...
2. Je viens de remarquer que si la première ligne correspond à une date ultérieure, cela donne un delta de temps négatif... Le delta de temps doit toujours être positif. Est-ce que cela fonctionnera si je trie la table source au tout début pour que votre script fonctionne correctement ?
Re: Script pour le traitement des tables JMP14Le tri devrait fonctionner, mais vous pouvez également envisager d'autres formules si tel est le cas (si l'ordre est toujours plus tardif - plus tôt). J'utilise la moyenne mobile de Col, afin de pouvoir accéder à la valeur de la ligne précédente pour le groupe.