So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdIch versuche, das interne Verhalten von JMP nachzubilden: Wenn ich eine kombinierte Tabelle in einem Verteilungsbericht erstelle, listet die resultierende Tabelle den Wert nach Wert in der ersten Spalte auf. Wenn ich meine eigene verschachtelte Tabellenstruktur erstelle, erhalte ich diese erste Spalte nicht in der resultierenden kombinierten Datentabelle. Wie kann ich meine Fensterstruktur so definieren, dass ich zwei identische kombinierte Datentabellen erzeuge?
Sehen Sie den Unterschied, indem Sie dieses Beispielskript ausführen:
/* Open a sample data table */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Generate the Distribution with a By variable */
dist = dt << Distribution( Continuous Distribution( Column( :height ) ), By( :sex ) );
/* Create the combined data table of Summary Statistics */
Report( dist[1] )["Summary Statistics"][Table Box( 1 )] << Make Combined Data Table;
TestWindow = new window("Test with multiple tables",main = v list box());
main << Append(
Outline Box( "Distributions sex=F",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{60.8888888888889, 3.61189031311679, 0.851330711102296, 62.6850396850604, 59.0927380927173, 18, 1096, 13.0457516339869,
5.93193664562977, 0}
)
)
)
)
)
);
main << Append(
Outline Box( "Distributions sex=M",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{63.9090909090909, 4.3084533840777, 0.918565347870119, 65.8193521238087,
61.9988296943731, 22, 1406, 18.5627705627705, 6.7415344558826, 0}
)
)
)
)
)
);
TestWindow["Summary Statistics"][Table Box( 1 )] << Make Combined Data Table;Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdSie können dies umgehen, indem Sie eine Funktion zum Erstellen Ihrer kombinierten Datentabelle erstellen und die Funktion so einstellen, dass sie als Kontextmenüskript für die TableBox ausgeführt wird. Weitere Informationen finden Sie weiter unten. Bitte beachten Sie, dass Sie einige der anderen Kontextmenüelemente bei Bedarf mithilfe der JSL-Nachrichtenäquivalente (mit etwas Aufwand) wieder hinzufügen können.
customMakeCombinedDataTable = Function({},
// Get a list of all of all invisible columns
collapsedCols = TestWindow <<XPATH></XPATH>

Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdHmm, das Problem besteht immer noch darin, dass, wenn die Leute im Berichtsfenster mit der rechten Maustaste klicken -> Tabelle mit kombinierten Daten erstellen, beides nicht funktioniert und ich nicht weiterkomme und eine Spalte hinzufügen muss, die nichts anderes als den wiederholten gleichen Wert enthält. Ich hatte gehofft, das zu vermeiden.Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdDie von der JMP-Plattform generierten TableBoxes verfolgen die By-Gruppen zwar intern, Sie können dies jedoch nicht selbst festlegen, wenn Sie ein benutzerdefiniertes JMP-Fenster verwenden.
Lassen Sie es gerne offen, falls ich etwas verpasst habe!
Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdJustin, danke für deine Antworten, beide scheinen zu funktionieren und wenn niemand eine einfachere Lösung vorschlägt, hast du mir definitiv geholfen! Lassen Sie mich die Frage also noch eine Weile offen lassen. Wenn Nobidy eine bessere Antwort findet, werde ich Ihre als Antwort markieren.
Es scheint mir, dass JMP intern noch etwas anderes macht (z. B. eine Tabelleneigenschaft festlegen, die analysiert wird?), und ich hoffe, dass dieser Trick der Skriptschnittstelle zugänglich gemacht wird und hier angewendet werden kann.
Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdHallo @pauldeen ,
Ich habe zwei Ansätze gefunden, um dieses Problem anzugehen.
Der erste Ansatz ist der einfachere von beiden, erfordert jedoch das Einfügen des By-Variablenwerts als Spalte in Ihre zusammenfassenden Statistiktabellen. Im Beispiel unten sehen Sie die zusätzliche Spalte „Geschlecht“, die zunächst reduziert ist, aber vorübergehend nicht minimiert wird, um die kombinierte Datentabelle zu erstellen. Einzelheiten finden Sie in den Kommentaren.
TestWindow = new window("Test with multiple tables",main = v list box());
main << Append(
Outline Box( "Distributions sex=F",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box( "Sex", Repeat( {"F"}, 10 ), <<VISIBILITY></VISIBILITY>
Hier ist die resultierende Tabelle mit dieser Methode:

Die zweite Methode besteht darin, die By-Wertinformationen aus der OutlineBox abzurufen und die Tabellen miteinander zu verketten. Diese Methode erfordert keine Änderungen an der Einrichtung Ihrer bestehenden OutlineBox/Sumary Statistics-Einrichtung, ist aber etwas komplizierter. Einzelheiten finden Sie in den Kommentaren unten.
TestWindow = new window("Test with multiple tables",main = v list box());
main << Append(
Outline Box( "Distributions sex=F",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{60.8888888888889, 3.61189031311679, 0.851330711102296, 62.6850396850604, 59.0927380927173, 18, 1096, 13.0457516339869,
5.93193664562977, 0}
)
)
)
)
)
);
main << Append(
Outline Box( "Distributions sex=M",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{63.9090909090909, 4.3084533840777, 0.918565347870119, 65.8193521238087,
61.9988296943731, 22, 1406, 18.5627705627705, 6.7415344558826, 0}
)
)
)
)
)
);
// get all of the tableboxes within a 'Summary Statistics' OutlineBox
tableBoxes = TestWindow << Xpath("//OutlineBox[text()='Summary Statistics']/TableBox");
//Create and insert each data table
dts = {};
For( i = 1, i <= N Items( tableBoxes ), i++,
tempDt = tableBoxes[i] << make into data table( "invisible" );
//set the name of the table to the title of the top outlinebox
tempDt << Set Name( (((tableBoxes[i] << Parent) << parent) << parent) << get title );
Insert Into( dts, tempDt );
);
// Concatenate the tables together, with a source column
dts[1] << Concatenate( Remove( dts, 1 ), Create source column );
// close all of the temporary tables
For( i = 1, i <= N Items( dts ), i++,
Close( dts[i] )
);
Hier ist die resultierende Tabelle:

Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wird
Allein mit dem Code, den Sie gepostet haben, habe ich die Datentabelle erhalten. Ist das nicht das, was Sie erwarten?
Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdLeider ist das nicht das, was ich will. Ich habe bereits das kombinierte Fenster. Jetzt möchte ich meinen Kunden die Möglichkeit geben, daraus eine nützliche kombinierte Datentabelle zu erstellen.Betreff: So richten Sie ein Berichtsfenster ein, sodass die kombinierte Datentabelle nach Wert angezeigt wirdhttps://community.jmp.com/t5/Discussions/JSL-Combined-graphs-from-multiple-data-table-and-combined-into-a/mp/17215#M15690