Problème
Vous exécutez une analyse dans JMP et souhaitez extraire certaines des statistiques du rapport de la plate-forme. Ensuite, vous souhaitez placer ces statistiques dans une fenêtre de rapport personnalisée, afin de pouvoir les conserver après la fermeture de la table de données et du rapport de la plate-forme.
Solution
Vous pouvez obtenir une référence à la couche de rapport du rapport d'analyse et utiliser des messages JSL pour extraire des statistiques de
Dans cet exemple, un rapport de plate-forme bivariée est généré et vous obtenez une référence à la couche de rapport ( rapportbiv ). À l'aide de cette référence, vous pouvez extraire des variables et des chaînes du rapport bivarié. Ensuite, une nouvelle fenêtre de rapport personnalisé est créée et remplie avec les statistiques et les chaînes qui ont été extraites du rapport. Enfin, la table de données est fermée, ce qui ferme le rapport bivarié, mais la fenêtre du rapport personnalisé reste ouverte.
Names Default To Here(1);
sd = Open( "$SAMPLE_DATA/Lipid Data.JMP" );
biv = sd << Bivariate( // biv is the analysis layer.
Y( :Triglycerides ),
X( :LDL ),
Density Ellipse( 0.95, {Line Color( {213, 72, 87} )} ),
Fit Line( {Line Color( {57, 177, 67} )} )
);
/* Get a reference to the report layer. */
reportbiv = biv << Report;
// Make sure the "Bivariate Normal Ellipse" outline
// in the Bivariate report is open. You can then see which
// content to extract into the Custom report.
reportbiv[Outline Box( "Bivariate Normal Ellipse P=0.950" )] << Close( 0 );
// Extract the correlation coefficient.
corrvalue = reportbiv[Outline Box( "Bivariate Normal Ellipse P=0.950" )][Number Col Box( "Correlation" )] << Get( 1 );
// Extract the numeric values from the Summary of Fit report as a matrix.
sumfit = reportbiv[Outline Box( "Summary of Fit" )][Number Col Box( 1 )] << Get as Matrix;
// Extract the Term column of the Parameter Estimates report as a list of strings.
term = reportbiv[Outline Box( "Parameter Estimates" )][String Col Box( "Term" )] << Get();
// Extract the Parameter Estimates values as a matrix.
parmests = reportbiv[Outline Box( "Parameter Estimates" )][Table Box( 1 )] << Get as Matrix;
dlg = New Window( "Custom Report",
Outline Box( "Selected Values",
/* The Lineup box defines a two-column layout, each of which contains a Text Box. */
Lineup Box( N Col( 2 ), Text Box( "Factor of Interest: " ), Text Box( term[2] ), ),
tb = Table Box(
/* Display an empty string in the first column and the text in the second column. */
String Col Box( " ", {"Sample Size: ", "Adjusted RSquare: ", "RSquare: ", "Correlation:"} ),
/* Insert a 30 pixel x 30 pixel spacer between the columns. */
Spacer Box( Size( 30, 30 ) ),
/* Display an empty string in the first column and the statistics in the second column. */
Number Col Box( " ", sumfit[{5,2,1}] |/ corrvalue )
),
/* Insert a 1 x 30 spacer. */
Spacer Box( Size( 0, 30 ) ),
Table Box(
/* Display the cloned String Col Box and insert the Parameter Estimates and Standard Error values. */
String Col Box( "Term", term ),
Number Col Box( "Estimate", parmests[0,1] ),
Number Col Box( "Standard Error", parmests[0,2] )
)
)
);
tb << Set Shade Headings( 0 ); // Turn off shaded table headings.
tb << Set Heading Column Borders( 0 ); // Turn off table column borders.
Close( sd ); // Close the data table.
Discussion
Les rapports de plate-forme JMP contiennent deux couches : la couche de plate-forme et la couche de rapport. Si vous avez un objet JSL qui est une référence à la couche de plate-forme, vous pouvez envoyer des messages à cet objet qui se rapportent à l'analyse. Ce sont généralement des options qui se trouvent dans le menu du triangle rouge. Si vous avez un objet JSL qui est une référence à la couche de rapport, vous pouvez envoyer des messages à cet objet qui se rapportent au rapport lui-même. Ces messages peuvent extraire des valeurs ou des images, modifier des sélections, ouvrir et fermer des nœuds de plan, entre autres actions.
Voir également
Cet article est basé sur une exemple dans la documentation JMP .
J'ai essayé de suivre ce code et de l'utiliser dans un rapport différent.
mon intention est d'exécuter plusieurs modèles et de résumer les résultats importants dans un tableau tel qu'il est présenté ici.
Voici un exemple simple sur un exemple d'ensemble de données pour montrer ce que je vise.
Pour commencer, j'ai essayé d'extraire la valeur P du modèle. J'ai donc commenté le deuxième modèle et écrit le code suivant :
Open("$SAMPLE_DATA/Detergent.jmp");
Model1 = Fit Model(
Y( :previous use ),
Effects( :softness ),
Personality( "Nominal Logistic" ),
Run(
Positive Level( "yes" ),
Likelihood Ratio Tests( 1 ),
Wald Tests( 1 ),
Odds Ratios( 1 ),
ROC Curve( 1 )
)
);
reportMod = Model1 << Report;
FMchi = reportMod[Outline Box( "Whole Model Test" )][Number Col Box( "Prob>ChiSq" )] << Get( 1 );
dlg = New Window( "Custom Report11",
Outline Box( "Selected Values",
Table Box(
String Col Box( "Pvalue", FMchi )
)
)
);
/*
Model2=Fit Model(
Y( :previous use ),
Effects( :count ),
Personality( "Nominal Logistic" ),
Run(
Positive Level( "yes" ),
Likelihood Ratio Tests( 1 ),
Wald Tests( 0 ),
Odds Ratios( 1 ),
ROC Curve( 1 ),
Logistic Plot( 1 )
)
);La table finale que je veux est :
Attribut | Test du modèle entier | RCarré (U) | N | Estimation | Prob>ChiSq | Rapport de cotes | ASC |
douceur | 1.000 | 0,000 | 24 | 0 | 1.000 | 1.000 | 0,500 |
compter | 0,5268 | 0,012 | 24 | 0,0183 | 0,5301 | 1.01847 | 0,5625 |
voici une capture d'écran du rapport obtenu dans laquelle j'ai mis en évidence les données extraites.
(Dans la douceur des attributs, pour l'estimation des paramètres et le rapport de cotes, je n'ai pris que la première ligne du journal).




La fenêtre de rapport d'origine s'affiche, mais je n'ai même pas réussi à ouvrir la fenêtre de rapport supplémentaire.
Tous les conseils seraient appréciés.
TIA, Éli