Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valoreSto cercando di ricreare il comportamento interno di JMP: quando si esegue una tabella combinata in un report di distribuzione, la tabella risultante elencherà il valore in base alla prima colonna. Quando creo la mia struttura di tabelle nidificate non ottengo questa prima colonna nella tabella dati combinata risultante. Come posso definire la struttura della mia finestra in modo tale da generare due tabelle dati combinate identiche?
Scopri la differenza eseguendo questo script di esempio:
/* 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;Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valorePuoi aggirarlo creando una funzione per creare la tabella dati combinata e impostare la funzione in modo che venga eseguita come script del menu contestuale per TableBox. Vedi sotto per i dettagli. Tieni presente che puoi aggiungere nuovamente alcune delle altre voci del menu contestuale se ne hai bisogno (con un po' di lavoro) utilizzando gli equivalenti dei messaggi JSL.
customMakeCombinedDataTable = Function({},
// Get a list of all of all invisible columns
collapsedCols = TestWindow <<XPATH></XPATH>

Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valoreHmm, rimane ancora il problema che se le persone fanno clic con il tasto destro -> creano una tabella di dati combinata nella finestra del rapporto, nessuno di questi funziona e sono bloccato con l'aggiunta di una colonna che non è altro che lo stesso valore ripetuto. Speravo di evitarlo.Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valoreI TableBox generati dalla piattaforma JMP tengono traccia internamente dei gruppi By, ma non è qualcosa che puoi impostare tu stesso quando usi una finestra JMP personalizzata.
Sentitevi liberi di tenerlo aperto nel caso mi sia sfuggito qualcosa!
Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valoreJustin, grazie per le tue risposte, entrambe sembrano funzionare e se nessuno si fa avanti con una soluzione più semplice mi hai sicuramente aiutato! Quindi lasciami lasciare la domanda aperta ancora per un po' e se nessuno dovesse trovare una risposta migliore, contrassegnerò la tua come risposta.
Mi sembra che JMP faccia qualcos'altro internamente (come impostare una proprietà di tabella che viene analizzata?) e spero che questo trucco sia esposto all'interfaccia di scripting e possa essere applicato qui.
Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valoreCIAO @pauldeen ,
Ci sono due approcci che ho trovato per affrontare questo problema.
Il primo approccio è il più semplice dei due, ma richiede l'inserimento del valore della variabile Per come colonna nelle tabelle delle statistiche di riepilogo. Nell'esempio seguente, vedi la colonna aggiuntiva "Sesso", che inizialmente è compressa ma viene temporaneamente decompressa per creare la tabella di dati combinata. Vedi i commenti per i dettagli.
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>
Ecco la tabella risultante utilizzando questo metodo:

Il secondo metodo consiste nell'acquisire le informazioni By value da OutlineBox e concatenare le tabelle insieme. Questo metodo non richiede alcuna modifica alla configurazione esistente di OutlineBox/Sumary Statistics, ma è un po' più complicato. Vedi i commenti qui sotto per i dettagli.
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] )
);
Ecco la tabella risultante:

Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valore
Solo con il codice che hai pubblicato, ho ricevuto la tabella dei dati: non è quello che ti aspetti?
Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valoreSfortunatamente non è quello che voglio. Ho già la finestra combinata. Ora voglio offrire ai miei clienti la possibilità di creare da esso un'utile tabella di dati combinati.Re: Come impostare una finestra di report in modo che la tabella dati combinata venga visualizzata in base al valorehttps://community.jmp.com/t5/Discussions/JSL-Combined-graphs-from-multiple-data-table-and-combined-into-a/mp/17215#M15690