Berichterstattung über Daten aus LSMeans Differences Student's tHallo zusammen,
Ich versuche, einen Bericht mit bestimmten Daten aus der Tabelle „LSMeans Differences Student's t“ zu erstellen:

Ich hätte gerne eine Tabelle in einem der folgenden Formate:


Leider kann ich den Mittelwert nicht richtig drucken und es kann keine Daten aus der größeren Tabelle übernehmen. Ich erhalte das Folgende

Ich habe den folgenden Code ausprobiert, bei dem ich die „17“ in Zahlen zwischen 1 und 30 geändert habe, und nichts funktioniert – 17 steht für ein anderes Umrissfeld:
sd = Open( "test_table.jmp" );<BR /><BR />Fitmod = Fit Model(<BR />Y( :"Test value"n ),<BR />Effects( :Person ),<BR />Random Effects( :Day[:Person] ),<BR />NoBounds( 0 ),<BR />Personality( "Standard Least Squares" ),<BR />Method( "REML" ),<BR />Emphasis( "Effect Leverage" ),<BR />Run(<BR />:"Test value"n << {Summary of Fit( 1 ),<BR />Analysis of Variance( 0 ), Parameter Estimates( 1 ), Scaled Estimates( 0 ),<BR />Plot Actual by Predicted( 1 ), Plot Regression( 0 ),<BR />Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),<BR />Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),<BR />{:Person << {LSMeans Student's t( 0.05 )}}}<BR />),<BR />Where( :ID == "A1" ),<BR />SendToReport(<BR />Dispatch(<BR />{"Test value ID=A1"},<BR />"Whole Model",<BR />OutlineBox,<BR />{Close( 1 )}<BR />),<BR />Dispatch(<BR />{"Test value ID=A1", "Person"},<BR />"Leverage Plot",<BR />OutlineBox,<BR />{Close( 1 )}<BR />)<BR />)<BR />);<BR /><BR />report(Fitmod) [Outline Box( 2 )] << Close( 0 );<BR />reportFitmod = Fitmod << Report;<BR /><BR /><STRONG>sumfit = reportFitmod[Outline Box( 17 )][Number Col Box( 1 )] << Get as Matrix;
meandiff = sumfit[1];
lowerCL = sumfit[3];
upperCL = sumfit[4];</STRONG><BR /><BR />term = reportFitmod[Outline Box( 13 )][String Col Box( 1 )] << Get();<BR /><BR />est = reportFitmod[Outline Box( 13 )][Number Col Box( 1 )] << Get as Matrix;<BR /><BR />dvalues = [];<BR />dvalues = meandiff |/ lowerCL |/ upperCL ;<BR />sfactor = term[2];<BR /><BR />dlg = New Window( "Custom Report",<BR />Outline Box( "Selected Values",<BR />Lineup Box( N Col( 2 ),<BR />Text Box( "Factor of Interest: " ),<BR />Text Box( sfactor ), ),<BR />tb = Table Box(<BR /><BR />String Col Box( " ",<BR />{"Mean difference: ", "Upper limit: ", "Lower limit: "}<BR />),<BR />Spacer Box( Size( 30, 30 ) ),<BR />,<BR />Spacer Box( Size( 0, 30 ) ),<BR />,<BR />Table Box(<BR />CloneTerm,<BR />Spacer Box( Size( 10, 0 ) ),<BR />,<BR />Number Col Box( "Estimate", est ),<BR />Spacer Box( Size( 10, 0 ) ),<BR />,<BR />Number Col Box( "Mean difference", meandiff)<BR />)<BR />)<BR />);<BR /><BR />tb << Set Shade Headings( 0 ); // Turn off shaded table headings.<BR />tb << Set Heading Column Borders( 0 ); // Turn off table column borders.<BR />
Wie melden Sie die Daten aus der größeren Tabelle?
Beste grüße
Automatisierung und SkriptingBetreff: Berichterstattung über Daten aus LSMeans Differences Student's tWillkommen in der JMP-Community.
Ich glaube, es liegt eine Verwechslung zwischen der von Ihnen angehängten Datentabelle und dem von Ihnen angehängten Skript vor. Die Verweise im Skript auf die zu analysierenden Spalten stimmen nicht mit den Spalten in der angehängten Datentabelle überein.
Wenn Sie die richtigen Anhänge bereitstellen können, bin ich sicher, dass die Community Sie bei Ihren Bemühungen unterstützen kann.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tLieber Jim,
Ich entschuldige mich für die Verwechslung. Vielen Dank, dass Sie mich informiert haben. Ich habe jetzt das richtige Skript angehängt.
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tDies kann Ihnen einen Vorteil bei der Herstellung Ihres Endprodukts verschaffen. Es produziert

Names Default To Here( 1 );
sd = //Open( "test_table.jmp" );
Data Table( "test_table" );
Fitmod = Fit Model(
Y( :"Test value"n ),
Effects( :Person ),
Random Effects( :Day[:Person] ),
NoBounds( 0 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Effect Leverage" ),
Run(
:"Test value"n << {Summary of Fit( 1 ), Analysis of Variance( 0 ), Parameter Estimates( 1 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ), {:Person << {LSMeans Student's t( 0.05 )}}}
),
Where( :ID == "A1" ),
SendToReport(
Dispatch( {"Test value ID=A1"}, "Whole Model", OutlineBox, {Close( 1 )} ),
Dispatch( {"Test value ID=A1", "Person"}, "Leverage Plot", OutlineBox, {Close( 1 )} )
)
);
Report( Fitmod )[Outline Box( 2 )] << Close( 0 );
reportFitmod = Fitmod << Report;
sumfit = reportFitmod[Outline Box( "Least Squares Means Table" )][Number Col Box( 1 )] << Get as Matrix;
// Get data from CrossTab table
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
// Get Where clause variable
whereCol = Word( 2, ((reportFitmod << parent)[Text Box( 1 )]) << get text, ":=)" );
whereVal = {};
Eval( Parse( "insert into(whereVal," || Word( 2, ((reportFitmod << parent)[Text Box( 1 )]) << get text, "=)" ) || ");" ) );
meandiff = Round( Abs( crossTab[1, 2] ), 4 );
lowerCL = Round( Abs( crossTab[3, 2] ), 3 );
upperCL = Round( Abs( crossTab[4, 2] ), 3 );
term = reportFitmod[Outline Box( "Least Squares Means Table" )][String Col Box( 1 )] << Get();
est = reportFitmod[Outline Box( "Least Squares Means Table" )][Number Col Box( 1 )] << Get as Matrix;
testValue = {};
Insert Into( testValue, (Substr( reportFitmod[Outline Box( 1 )] << get title, 10 )) );
dif = {};
Insert Into( dif, Char( meandiff ) || " [" || Char( lowerCL ) || ";" || Char( upperCL ) || "]" );
dlg = New Window( "Custom Report",
Outline Box( "Selected Values",
Lineup Box( N Col( 2 ), Text Box( "Factor of Interest: " ), Text Box( sfactor ) ),
Spacer Box( size( 0, 10 ) ),
tb = Table Box(
String Col Box( "Test Value", testvalue ),
String Col Box( whereCol, whereVal ),
Number Col Box( "Mean, " || term[1], sumfit[1] ),
Number Col Box( "Mean, " || term[2], sumfit[2] ),
String Col Box( "Difference in mean and CI", dif )
)
)
);
tb << Set Shade Headings( 0 ); // Turn off shaded table headings.
tb << Set Column Borders( 1 ); // Turn off table column borders.
tb << Set row Borders( 1 );
tb << border( 1 );
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tHallo Jim,
Wie muss das Skript bei mehreren IDs angepasst werden, um eine Tabelle mit allen Elementen zu erzeugen? Kann man hierfür eine Schleife implementieren?
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tIch habe das JSL geändert, um mehrere ID-Ebenen verarbeiten zu können.

Names Default To Here( 1 );
sd = //Open( "test_table.jmp" );
Data Table( "test_table " );
Fitmod = Fit Model(
Y( :"Test value"n ),
Effects( :Person ),
Random Effects( :Day[:Person] ),
NoBounds( 0 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Effect Leverage" ),
Run(
:"Test value"n << {Summary of Fit( 1 ), Analysis of Variance( 0 ), Parameter Estimates( 1 ),
Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ), Plot Effect Leverage( 1 ),
Plot Residual by Normal Quantiles( 0 ), {:Person << {LSMeans Student's t( 0.05 )}}}
),
by( :ID ),
SendToReport(
Dispatch( {"Test value ID=A1"}, "Whole Model", OutlineBox, {Close( 1 )} ),
Dispatch( {"Test value ID=A1", "Person"}, "Leverage Plot", OutlineBox, {Close( 1 )} )
)
);
// Set the lists for the storage of the data from the by groups
whereVal = testValue = dif = sumfit1 = sumfit2 = {};
// Loop across each by group and gather the data
For Each( {rpt, group}, Fitmod,
// Point to the current report
reportFitmod = Fitmod[group] << Report;
// Get the means for the 2 levels
sumfit = reportFitmod[Outline Box( "Least Squares Means Table" )][Number Col Box( 1 )] << Get as Matrix;
Insert Into( sumfit1, sumfit[1] );
Insert Into( sumfit2, sumfit[2] );
term = reportFitmod[Outline Box( "Least Squares Means Table" )][String Col Box( 1 )] << Get();
// Get By Group column
whereCol = Word( 1, (reportFitmod[Outline Box( 1 )] << get title), "=)" );
Insert Into( whereVal, Word( 2, (reportFitmod[Outline Box( 1 )] << get title), "=)" ) );
// Get data from CrossTab table
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] <<
get as matrix;
meandiff = Round( Abs( crossTab[1, 2] ), 4 );
lowerCL = Round( Abs( crossTab[3, 2] ), 3 );
upperCL = Round( Abs( crossTab[4, 2] ), 3 );
// Get the Response variable name
Insert Into( testValue, (Substr( (reportFitmod << topparent)[Outline Box( 1 )] << get title, 10 )) );
// Create the Differeence in mean and CL string
Insert Into( dif, Char( meandiff ) || " [" || Char( lowerCL ) || ";" || Char( upperCL ) || "]" );
);
// Create the table
dlg = New Window( "Custom Report",
Outline Box( "Selected Values",
Lineup Box( N Col( 2 ), Text Box( "Factor of Interest: " ), Text Box( term[1] ) ),
Spacer Box( size( 0, 10 ) ),
tb = Table Box(
String Col Box( "Test Value", testvalue ),
String Col Box( whereCol, whereVal ),
Number Col Box( "Mean, " || term[1], sumfit1 ),
Number Col Box( "Mean, " || term[2], sumfit2 ),
String Col Box( "Difference in mean and CI", dif )
)
)
);
tb << Set Shade Headings( 0 ); // Turn off shaded table headings.
tb << Set Column Borders( 1 ); // Turn off table column borders.
tb << Set row Borders( 1 );
tb << border( 1 );
Ihre Aufgabe besteht nun darin, das Skript zu studieren und zu lernen, was es tut. Das Skript funktioniert für die von Ihnen angegebene Beispieldatentabelle und das Fit-Modell. Andere Datentabellen mit anderen Spalten und anderen Fit-Modell-Ausführungen funktionieren jedoch möglicherweise nicht mit dem JSL, das die Berichtsausgabe generiert. Sie müssen sich ausreichend damit auskennen, um das Skript an Ihre Anforderungen anzupassen.
Gute Referenzen hierfür sind der Scripting Guide und der Scripting Index, die im Pulldown-Menü „Hilfe“ in JMP verfügbar sind.
Selbstverständlich steht Ihnen die JMP-Diskussionscommunity beim Erlernen des Skripts zur Seite.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tVielen Dank für Ihre beeindruckende Arbeit!
Ich habe versucht, das Skript auszuführen, aber ich erhalte eine Fehlermeldung. Ich habe versucht, alte Fälle zu durchsuchen und bei Google sowohl nach der Funktion „For Each“ als auch nach der Fehlermeldung zu suchen und das Skript zu ändern, aber ohne Erfolg. Ich habe Version 16. Könnte dies ein Problem für das Skript darstellen?
Ich vermute, dass der Fehler von {rpt, group} herrührt, da ich versucht habe, alles in For Each zu entfernen, und trotzdem noch immer diesen Fehler bekomme.

Das meiste davon kann ich verstehen, aber woher bekommen wir dieses rpt und wie wird es verwendet? Es wird nur in For Each( {rpt, group} ...) erwähnt, daher kann ich nicht rationalisieren, wie es passt.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tWelche Version von JMP verwenden Sie? For Each() wurde JMP in Version 16 hinzugefügt. Die By()-Funktionalität in Fit Mod wurde erst in JMP 18 hinzugefügt.
Um diese beiden Änderungen verarbeiten zu können, muss das Skript geändert werden.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tIch verwende JMP Version 16.1.0, das muss also der Grund sein.
Muss die FitMod-Funktion durch eine andere Funktion ersetzt werden oder kann FitMod weiterhin einfach anders genutzt werden?
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tHier ist eine geänderte Version des Skripts. Ich habe es in JMP 16 getestet. Ich habe die By-Klausel entfernt und die Funktionalität durch eine For Each()-Schleife ersetzt, die das Fit-Modell für jede ID-Ebene separat ausführt. Das Skript sammelt dann die Ausgabe von jedem der separaten Fit-Modell-Outputs und generiert die endgültige Ausgabeanzeige

Names Default To Here( 1 );
sd = //Open( "test_table.jmp" );
Data Table( "test_table" );
Fitmod = {};
// Determine the levels in the ID column
summarize( sd, ByGroups = By( :ID ) );
// Loop across each levle of ID
For Each( {BG, group}, ByGroups,
Fm = Fit Model(
Y( :"Test value"n ),
Effects( :Person ),
Random Effects( :Day[:Person] ),
NoBounds( 0 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Effect Leverage" ),
Run(
:"Test value"n << {Summary of Fit( 1 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ),
Plot Regression( 0 ), Plot Residual by Predicted( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 1 ),
Plot Residual by Normal Quantiles( 0 ), {:Person << {LSMeans Student's t( 0.05 )}}}
),
Where( :ID == ByGroups[group] ),
SendToReport(
Dispatch( {"Test value ID=A1"}, "Whole Model", OutlineBox, {Close( 1 )} ),
Dispatch(
{"Test value ID=A1", "Person"},
"Leverage Plot",
OutlineBox,
{Close( 1 )}
)
)
);
// Save the pointer to the results in the Fitmod list
Insert Into( Fitmod, Fm );
);
// Set the lists for the storage of the data from the by groups
testValue = dif = sumfit1 = sumfit2 = {};
// Loop across each by group and gather the data
For Each( {rpt, group}, Fitmod,
// Point to the current report
reportFitmod = Fitmod[group] << Report;
// Get the means for the 2 levels
sumfit = reportFitmod[Outline Box( "Least Squares Means Table" )][Number Col Box( 1 )] << Get as Matrix;
Insert Into( sumfit1, sumfit[1] );
Insert Into( sumfit2, sumfit[2] );
term = reportFitmod[Outline Box( "Least Squares Means Table" )][String Col Box( 1 )] << Get();
// Get By Group column
whereCol = Word( 2, ((reportFitmod << parent)[Text Box( 1 )]) << get text, ":=)" );
// Get data from CrossTab table
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] <<
get as matrix;
meandiff = Round( Abs( crossTab[1, 2] ), 4 );
lowerCL = Round( Abs( crossTab[3, 2] ), 3 );
upperCL = Round( Abs( crossTab[4, 2] ), 3 );
// Get the Response variable name
Insert Into( testValue, (Substr( (reportFitmod << topparent)[Outline Box( 1 )] << get title, 10 )) );
// Create the Differeence in mean and CL string
Insert Into( dif, Char( meandiff ) || " [" || Char( lowerCL ) || ";" || Char( upperCL ) || "]" );
);
// Create the table
dlg = New Window( "Custom Report",
Outline Box( "Selected Values",
Lineup Box( N Col( 2 ), Text Box( "Factor of Interest: " ), Text Box( term[1] ) ),
Spacer Box( size( 0, 10 ) ),
tb = Table Box(
String Col Box( "Test Value", testvalue ),
String Col Box( whereCol, ByGroups ),
Number Col Box( "Mean, " || term[1], sumfit1 ),
Number Col Box( "Mean, " || term[2], sumfit2 ),
String Col Box( "Difference in mean and CI", dif )
)
)
);
tb << Set Shade Headings( 0 ); // Turn off shaded table headings.
tb << Set Column Borders( 1 ); // Turn off table column borders.
tb << Set row Borders( 1 );
tb << border( 1 );Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tHallo Jim,
Vielen Dank!
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tHallo Jim,
Ich habe noch eine weitere Frage. Wenn ich die Analyse mit vielen Testwerten ausführen möchte, kann ich dann Folgendes tun:
1. Eine Schleife mit FitModel machen und dann wie im obigen Skript fortfahren?
2. Die Analyse separat durchführen, wobei ich den Bericht in einem Bericht erhalte und dann ein Skript ausführe, das die Daten wie das obige Skript speichert?
Oder gibt es eine andere Möglichkeit, die ich ausprobieren sollte?
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tJulie,
Beide Ansätze würden wahrscheinlich funktionieren.
Diese Entscheidung zu treffen, scheint mir eine sehr große Entscheidung zu sein, die man am Anfang treffen muss. Ich würde mir zuerst überlegen, wie das Endprodukt aussehen soll, und dann das Skript nehmen und es so ändern, dass Sie dieses Ergebnis mit nur zwei Testwerten erhalten. Dadurch erhalten Sie sowohl ein wenig mehr Informationen darüber, wie der Ansatz aussehen sollte, als auch, welche Bereiche in JSL Sie besser kennen lernen müssen, um das Skript zu Ihrem Endprodukt zu erweitern.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tHallo Jim,
Schön zu wissen, dass beide Ansätze in JSL möglich sind.
Wäre es möglich, den Code so zu ändern, dass auch Y( :"Testwert"n ) alle fortlaufenden Spalten durchgeht?
// Determine the levels in the ID column
summarize( sd, ByGroups = By( :ID ) );
// Loop across each level of ID
For Each( {BG, group}, ByGroups,
Fm = Fit Model(
Y( :"Test value"n ),
Effects( :Person ),
Random Effects( :Day[:Person] ),
NoBounds( 0 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Effect Leverage" ),
Run(
:"Test value"n << {Summary of Fit( 1 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ),
Plot Regression( 0 ), Plot Residual by Predicted( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 1 ),
Plot Residual by Normal Quantiles( 0 ), {:Person << {LSMeans Student's t( 0.05 )}}}
),
Where( :ID == ByGroups[group] ),
SendToReport(
Dispatch( {"Test value ID=A1"}, "Whole Model", OutlineBox, {Close( 1 )} ),
Dispatch(
{"Test value ID=A1", "Person"},
"Leverage Plot",
OutlineBox,
{Close( 1 )}
)
)
);
// Save the pointer to the results in the Fitmod list
Insert Into( Fitmod, Fm );
);Ich habe mir viele andere Schleifen angeschaut und versucht, sie wie folgt zu ändern:
Names Default To Here( 1 );
sd = Open( "test_table_002.jmp" );
Data Table( "test_table_002" );
Fitmod = {};
// Determine the levels in the ID column
summarize( sd, ByGroups = By( :ID ) );
colList = sd << Get Column Names( Continuous, String );
// Loop across each level of ID
For Each( i = 1, i <= Nitems( colList ), i++,
For Each( {BG, group}, ByGroups,
Fm = Fit Model(
Y( colList ),
Effects( :Person ),
Random Effects( :Day[:Person] ),
NoBounds( 0 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Effect Leverage" ),
Run(
colList << {Summary of Fit( 1 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ),
Plot Regression( 0 ), Plot Residual by Predicted( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 1 ),
Plot Residual by Normal Quantiles( 0 ), {:Person << {LSMeans Student's t( 0.05 )}}}
),
Where( :ID == ByGroups[group] ),
SendToReport(
Dispatch( {"Test value ID=A1"}, "Whole Model", OutlineBox, {Close( 1 )} ),
Dispatch(
{"Test value ID=A1", "Person"},
"Leverage Plot",
OutlineBox,
{Close( 1 )}
)
)
);
// Save the pointer to the results in the Fitmod list
Insert Into( Fitmod, Fm );
);
);Allerdings bekomme ich einen Fehlercode angezeigt, den ich nicht ganz verstehe.
Ich habe eine Testtabelle angehängt und noch einmal überprüft, ob ich die richtige angehängt habe.
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tWas ist die Fehlermeldung?
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tHier ist die Fehlermeldung:

Ich habe im Moment nur 43 Zeilen im Skript
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tIhre Skriptänderung ist fast funktionsfähig. In Zeile 11 geben Sie an
For Each( i = 1, i <= Nitems( colList ), i++,
Es sollte
For( i = 1, i <= Nitems( colList ), i++,
Es besteht ein großer Unterschied zwischen der Funktion For Each() und For(). Definitionen und Beispiele der beiden unterschiedlichen Funktionen finden Sie im Scripting Index.
Sie müssen auch Ihre Referenzen ändern in
Spaltenliste
in den Zeilen 15 und 23, um anzugeben, auf welche Elemente in colList Sie verweisen.
Da Sie die Variable "i" als Indexwert verwenden, müssen Sie angeben
colList[i]
In der von Ihnen bereitgestellten Beispieldatentabelle haben Sie nur die Spalte Testwert als Ihre numerischen (kontinuierlichen) Spalten, sodass Sie mit Ihrer For()-Funktion nur einmal eine Schleife ausführen. Wenn Sie jedoch weitere numerische (kontinuierliche) Spalten hinzufügen, wird Ihr Code mit den von mir erwähnten Änderungen an der Syntax für jede der numerischen (kontinuierlichen) Spalten ausgeführt.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tVielen Dank. Das macht sehr viel Sinn!
Eine letzte Frage: Wie kann ich den Text in der Depesche ändern, die an den Bericht gesendet wird?
Derzeit lautet es „Testwert-ID=A1“ und es wird z. B. Testwert 1 oder Testwert 2 ausgedruckt. Als ich versucht habe, es zu „Testwert-ID=colList“ zu ändern, wurde dasselbe ausgedruckt, daher verstehe ich nicht, wie es funktioniert.
Ich möchte, dass für den Testwert 1 mit der ID A1 der folgende Text gedruckt wird: „Testwert 1, ID=A1“. Ich habe es mit verschiedenen Zeichenfolgen und Funktionen versucht, aber entweder erhalte ich eine Fehlermeldung oder es wird einfach dasselbe gedruckt wie zuvor.
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tIch verstehe nicht, was Sie sagen. Ich werde es von einer anderen Seite angehen. Hier ist die Ausgabe aus Ihrer Datentabelle für die Spalte Testwert 1

was möchten Sie an dieser Ausgabe ändern?
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tLieber Jim,
Ich habe bei dem Bild draufgeschrieben, wo ich was geändert haben möchte und wie:

Wenn die ID nicht angegeben ist, weiß ich nicht, wie ich zwischen den verschiedenen Fenstern unterscheiden soll, die bei mehreren IDs angezeigt werden.
Ich hoffe, das ist verständlicher:)
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tSie können den Wert der Berichtsausgabe ändern, indem Sie die Anzeigebaumobjekte anpassen.

Durch Hinzufügen
report(fm)[OutlineBox(1)]<<SET title=""></SET>
prior to
// Save the pointer to the results in the Fitmod list
Insert Into( Fitmod, Fm );
Der Titel wird auf den gewünschten Wert geändert.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tLieber Jim,
Vielen Dank für all Ihre Hilfe! Ich weiß das wirklich zu schätzen und es war auch für mich eine enorme Lernerfahrung. Das Skript ist jetzt voll funktionsfähig und kann mit vielen Datensätzen verwendet werden.
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tLieber Jim,
Ich habe das Skript verwendet und dann bemerkt, dass mir beim Drucken der Daten in der Parameterliste nicht alle verschiedenen Testwertparameter angezeigt werden, sondern nur Testwert 1:

Mir ist es anhand des folgenden Teils des Skripts klar geworden:
// Get the Response variable name
Insert Into( testValue, (Substr( (reportFitmod << topparent)[Outline Box( 1 )] << get title, 10 )) );
Ich habe versucht, es zu ändern, aber es druckt entweder immer noch nur den einzelnen Parameter, gibt einen Fehler aus oder druckt etwas, von dem ich keine Ahnung habe, woher es kommt.
Beste grüße,
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tDas komplette Skript, das Du verwendest, kann ich nicht mehr rekonstruieren. Bitte hänge das komplette Skript, das Du verwendest, an.
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tHallo Jim,
Ich habe eine funktionierende Datentabelle und das Skript angehängt.
BR/
Julie
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tIch habe eine Abkürzung genommen, um das Problem zu lösen. Ich habe eine JMP-Liste namens „Titel“ hinzugefügt, die nach jedem Ausführen und unmittelbar nach dem Festlegen des Outline Box()-Titels ausgefüllt wird. Ich verwende dann einfach die Titelliste in der Table Box() in Ihrem DLG-Abschnitt.

Names Default To Here( 1 ); // will ignore normal JSL naming
sd = currentdatatable(); // call upon open data table
// Define that Fitmod is empty. We will fill this with our information in the loop
Fitmod = {};
// Determine the levels in the ID column
summarize( sd, ByGroups = By( :Batch ) );
// Determine the result columns
colList = sd << Get Column Names( Continuous, String );
sum = 0; // Prepare getting the total number of result columns. Will be updated in the loop
titles = {};
// Loop across each level of Batch
nw_means = New Window("My Report",
For( i = 1, i <= Nitems( colList ), i++,
For Each( {BG, group}, ByGroups,
Fm = Fit Model(
Y( colList[i] ),
Effects( :Laboratory ),
Random Effects( :Day[:Laboratory] ),
NoBounds( 0 ),
Personality( "Standard Least Squares" ),
Method( "REML" ),
Emphasis( "Effect Leverage" ),
Run(
colList[i] << {Summary of Fit( 1 ), Analysis of Variance( 0 ),
Parameter Estimates( 1 ), Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ),
Plot Regression( 0 ), Plot Residual by Predicted( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 1 ),
Plot Residual by Normal Quantiles( 0 ), {:Person << {LSMeans Student's t( 0.05 )}}}
),
Where( :Batch == ByGroups[group] ),
SendToReport(
Dispatch( {"" }, "Whole Model", OutlineBox, {Close( 1 )} ),
Dispatch(
{"", "Laboratory"},
"Leverage Plot",
OutlineBox,
{Close( 1 )}
)
)
);
report(fm)[OutlineBox(1)] << set title(report(fm)[OutlineBox(1)] << get title || ", ID=" || BG);
// Save the pointer to the results in the Fitmod list
Insert Into( Fitmod, Fm );
insert into(titles, report(fm)[OutlineBox(1)] << get title);
);
sum = sum + 1
);
);
// Set the lists for the storage of the data from the by groups
testValue = dif = sumfit1 = sumfit2 = {};
// Loop across each by group and gather the data
For Each( {rpt, group}, Fitmod,
// Point to the current report
reportFitmod = Fitmod[group] << Report;
// Get the means for the 2 levels
sumfit = reportFitmod[Outline Box( "Least Squares Means Table" )][Number Col Box( 1 )] << Get as Matrix;
Insert Into( sumfit1, sumfit[1] );
Insert Into( sumfit2, sumfit[2] );
term = reportFitmod[Outline Box( "Least Squares Means Table" )][String Col Box( 1 )] << Get();
// Get By Group column
whereCol = Word( 2, ((reportFitmod << parent)[Text Box( 1 )]) << get text, ":=)" );
// Get data from CrossTab table
crossTab = reportFitmod[Outline Box( "LSMeans Differences Student's t" )][CrosstabBox( 1 )] << get as matrix;
meandiff = Round( crossTab[1, 2] , 4 );
lowerCL = Round( crossTab[3, 2] , 3 );
upperCL = Round( crossTab[4, 2] , 3 );
// Get the Response variable name
Insert Into( testValue, (Substr( (reportFitmod << topparent)[Outline Box( 1 )] << get title, 10 )) );
// Create the Difference in mean and CL string
Insert Into( dif, Char( meandiff ) || " [" || Char( lowerCL ) || " ; " || Char( upperCL ) || "]" );
);
// Create the table
dlg = New Window( "Custom Report",
Outline Box( "Selected Values",
Lineup Box( N Col( 2 ), Text Box( "Factor of Interest: " ), Text Box( term[1] ) ),
Spacer Box( size( 0, 10 ) ),
tb = Table Box(
String Col Box( "Paramenter", titles ),
String Col Box( whereCol, repeat(ByGroups, sum) ),
Number Col Box( "Mean, " || term[1], sumfit1 ),
Number Col Box( "Mean, " || term[2], sumfit2 ),
String Col Box( "Difference in mean and CI", dif )
)
)
);
tb << Set Shade Headings( 0 ); // Turn off shaded table headings.
tb << Set Column Borders( 1 ); // Turn off table column borders.
tb << Set row Borders( 1 );
tb << border( 1 );
Betreff: Berichterstattung über Daten aus LSMeans Differences Student's tPerfektion! Danke