Problem
Sie führen eine Analyse in JMP durch und möchten einige Statistiken aus dem Plattformbericht extrahieren. Anschließend möchten Sie diese Statistiken in einem benutzerdefinierten Berichtsfenster platzieren, damit Sie sie behalten können, nachdem die Datentabelle und der Plattformbericht geschlossen wurden.
Lösung
Sie können einen Verweis auf die Berichtsebene des Analyseberichts abrufen und JSL-Nachrichten verwenden, um Statistiken daraus zu extrahieren
In diesem Beispiel wird ein bivariater Plattformbericht generiert und Sie erhalten einen Verweis auf die Berichtsebene ( reportbiv ). Mithilfe dieser Referenz können Sie Variablen und Zeichenfolgen aus dem bivariaten Bericht extrahieren. Anschließend wird ein neues benutzerdefiniertes Berichtsfenster erstellt und mit den Statistiken und Zeichenfolgen gefüllt, die aus dem Bericht extrahiert wurden. Schließlich wird die Datentabelle geschlossen, wodurch der bivariate Bericht geschlossen wird, das Fenster des benutzerdefinierten Berichts jedoch geöffnet bleibt.
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.
Diskussion
JMP-Plattformberichte enthalten zwei Ebenen: die Plattformebene und die Berichtsebene. Wenn Sie über ein JSL-Objekt verfügen, das auf die Plattformschicht verweist, können Sie Nachrichten an dieses Objekt senden, die sich auf die Analyse beziehen. Dies sind im Allgemeinen Optionen, die im Menü mit dem roten Dreieck zu finden sind. Wenn Sie über ein JSL-Objekt verfügen, das auf die Berichtsebene verweist, können Sie Nachrichten an dieses Objekt senden, die sich auf den Bericht selbst beziehen. Diese Nachrichten können unter anderem Werte oder Bilder extrahieren, Auswahlen ändern, Gliederungsknoten öffnen und schließen.
Siehe auch
Dieser Artikel basiert auf einem Beispiel in der JMP-Dokumentation .
Ich habe versucht, diesem Code zu folgen und ihn in einem anderen Bericht zu verwenden.
Meine Absicht ist es, mehrere Modelle laufen zu lassen und die wichtigen Ergebnisse in einer Tabelle zusammenzufassen, wie sie hier dargestellt ist.
Hier ist ein einfaches Beispiel für einen Beispieldatensatz, um zu zeigen, was ich anstrebe.
Zunächst habe ich versucht, den P-Wert des Modells zu extrahieren. Also habe ich das zweite Modell auskommentiert und den folgenden Code geschrieben:
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 )
)
);Der Abschlusstisch, den ich möchte, ist:
Attribut | Gesamtmodelltest | RQuadrat (U) | N | Schätzen | Prob>ChiSq | Wahrscheinlichkeit | AUC |
Weichheit | 1.000 | 0,000 | 24 | 0 | 1.000 | 1.000 | 0,500 |
zählen | 0,5268 | 0,012 | 24 | 0,0183 | 0,5301 | 1.01847 | 0,5625 |
Hier ist ein Screenshot des erhaltenen Berichts, in dem ich die extrahierten Daten hervorgehoben habe.
(In Bezug auf die Attributweichheit, für die Parameterschätzung und das Quotenverhältnis habe ich nur die erste Zeile aus dem Journal übernommen.)




Das ursprüngliche Berichtsfenster wird angezeigt, aber ich konnte nicht einmal das zusätzliche Berichtsfenster öffnen.
Für Tipps wäre ich dankbar.
TIA, Eli