<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut à tous.
J'essaie de créer un rapport à deux variables, avec des groupes de mesures disposés en rangées de 2.
Voici à quoi ressemble le rapport après l'avoir créé manuellement, à l'aide des données de l'échantillon de football.

Voici le script obtenu en cliquant sur la flèche rouge d'un groupe de mesures et en sélectionnant "Enregistrer le script pour tous les objets".
New Window( "Football - Bivariate", V List Box( Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "db" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "db" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "db" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "dl" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "dl" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "dl" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "fb" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "fb" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "fb" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "hb" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "hb" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "hb" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "ib" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "ib" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "ib" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "ki" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "ki" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "ki" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "ob" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "ob" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "ob" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "ol" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "ol" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "ol" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "qb" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "qb" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "qb" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "te" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "te" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "te" ) ), Fit Group( Bivariate( Y( :Height ), X( :Fat ), Where( :Position == "wr" ) ), Bivariate( Y( :Weight ), X( :Fat ), Where( :Position == "wr" ) ), <<{Arrange in Rows( 2 )}, Where( :Position == "wr" ) ) ));Et enfin, voici à quoi ressemble le résultat:

Je ne sais pas pourquoi cela se produit. Pourquoi le script enregistré n’est-il pas conforme à son contenu?
Pourquoi le groupe de "postes" apparaît-il en dehors de la case "groupe"?
Pourquoi le groupe de correspondance suivant est-il placé à côté de cette zone de texte plutôt qu'en dessous?
Comment peut-on résoudre ce problème ou écrire un script réel pour répliquer la première image?
Merci
Changez le script en:
Nouvelle fenêtre ("Football - Bivarié",
Zone de liste V (
Groupe Fit (
Bivarié (Y (: hauteur), X (: graisse), par (: position)),
Bivarié (Y (: Poids), X (: Graisse), par ((Position))
<< {Disposer en rangées (2)}
)));
Après 3 ans, je suis finalement tombé sur la solution générale que je cherchais. Jusqu'à ce point, j'avais créé dynamiquement la liste des groupes d'ajustement que JMP générerait, puis en utilisant xpath pour supprimer les zones de texte stupides et mettre à jour les titres du groupe d'ajustement. Même quand même, le résultat ne serait pas entièrement identique au résultat de l'interface graphique JMP, car la création de tableaux de données combinés ne créerait pas de colonnes pour les catégories dans la clause "where".
Si quelqu'un écoute, cela aurait été tellement plus facile si la documentation avait été meilleure. Rien de ce que je pourrais trouver n’aurait pu me faire croire que c’était ainsi. On ne devrait pas avoir à apprendre des choses comme ça à travers des essais aléatoires et l'expérimentation d'erreur.
Voir ci-dessous:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
//the dynamic script to do this analysis
//using the same inputs as the GUI window, with no other knowledge of the DT's contents
//The result is identical to the result generated from the GUI
Fit Group(
Bivariate( Y( :height ), X( :weight ), Automatic Recalc( 1 ) ),
Oneway(
Y( :height ),
X( :sex ),
//A lot of this was generated due to preferences I had set.
Automatic Recalc( 1 ),
Means and Std Dev( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 )
),
<<{Arrange in Rows( 2 )},
by(:age)
);
/*
The result JMP returns from "Save Script" > "To Script Window (All Objects)"
Returns a huge mess with fit groups and text boxes containing the "where" clauses
When making a combined data table of any of the resulting tables (such as means/std),
This report will *NOT* create columns with info from the "where" clauses
*/
New Window( "Big Class - Oneway",
V List Box(
Fit Group(
Bivariate( Y( :height ), X( :weight ), Automatic Recalc( 1 ) ),
Oneway(
Y( :height ),
X( :sex ),
Automatic Recalc( 1 ),
Means and Std Dev( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg( Box Plot Seg( 1 ), Line Color( "Red" ) ),
DispatchSeg( Box Plot Seg( 2 ), Line Color( "Red" ) )}
)
)
),
<<{Arrange in Rows( 2 )},
Where( :age == 12 ),
Where( :age == 12 )
),
Fit Group(
Bivariate( Y( :height ), X( :weight ), Automatic Recalc( 1 ) ),
Oneway(
Y( :height ),
X( :sex ),
Automatic Recalc( 1 ),
Means and Std Dev( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg( Box Plot Seg( 1 ), Line Color( "Red" ) ),
DispatchSeg( Box Plot Seg( 2 ), Line Color( "Red" ) )}
)
)
),
<<{Arrange in Rows( 2 )},
Where( :age == 13 ),
Where( :age == 13 )
),
Fit Group(
Bivariate( Y( :height ), X( :weight ), Automatic Recalc( 1 ) ),
Oneway(
Y( :height ),
X( :sex ),
Automatic Recalc( 1 ),
Means and Std Dev( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg( Box Plot Seg( 1 ), Line Color( "Red" ) ),
DispatchSeg( Box Plot Seg( 2 ), Line Color( "Red" ) )}
)
)
),
<<{Arrange in Rows( 2 )},
Where( :age == 14 ),
Where( :age == 14 )
),
Fit Group(
Bivariate( Y( :height ), X( :weight ), Automatic Recalc( 1 ) ),
Oneway(
Y( :height ),
X( :sex ),
Automatic Recalc( 1 ),
Means and Std Dev( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg( Box Plot Seg( 1 ), Line Color( "Red" ) ),
DispatchSeg( Box Plot Seg( 2 ), Line Color( "Red" ) )}
)
)
),
<<{Arrange in Rows( 2 )},
Where( :age == 15 ),
Where( :age == 15 )
),
Fit Group(
Bivariate( Y( :height ), X( :weight ), Automatic Recalc( 1 ) ),
Oneway(
Y( :height ),
X( :sex ),
Automatic Recalc( 1 ),
Means and Std Dev( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg( Box Plot Seg( 1 ), Line Color( "Red" ) ),
DispatchSeg( Box Plot Seg( 2 ), Line Color( "Red" ) )}
)
)
),
<<{Arrange in Rows( 2 )},
Where( :age == 16 ),
Where( :age == 16 )
),
Fit Group(
Bivariate( Y( :height ), X( :weight ), Automatic Recalc( 1 ) ),
Oneway(
Y( :height ),
X( :sex ),
Automatic Recalc( 1 ),
Means and Std Dev( 1 ),
Box Plots( 1 ),
Mean Diamonds( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg( Box Plot Seg( 1 ), Line Color( "Red" ) ),
DispatchSeg( Box Plot Seg( 2 ), Line Color( "Red" ) )}
)
)
),
<<{Arrange in Rows( 2 )},
Where( :age == 17 ),
Where( :age == 17 )
)
)
);