Funzioni tabella: tabelle multipleHo due problemi con suppongo che JMP assegni le tabelle e le utilizzi in seguito. I passaggi 2 e 3 saranno in script separati richiamati utilizzando il file Includere() funzione.
// Passaggio 1: inserisci i dati dal server e assegnali a dt_testdata_ss
dt_testdata_ss = Open Database( <SERVER string="">, <QUERY string=""> , "dt_testdata_ss" );</QUERY></SERVER>
// Passaggio 2: crea una nuova tabella con le condizioni
dt_testdata_ss_tx = dt_testdata_ss
<< select where ( (:col_1 == 24) & (:col_2 == 1))
<< subset( output table name("dt_testdata_ss_tx"));
// Passaggio 2a: utilizza dt_testdata_ss_tx in graphplot.jsl
// Passaggio 2b: utilizza dt_testdata_ss_tx in distribution.jsl
// Passaggio 3: crea una nuova tabella con le condizioni
dt_testdata_ss_rx = dt_testdata_ss
<< select where ((:col_1 == 16) & (:col_2== 3 ))
<< subset( output table name( "dt_testdata_ss_rx"));
// Passaggio 3a: utilizza dt_testdata_ss_rx in graphplot.jsl
// Passaggio 3b: utilizza dt_testdata_ss_rx in distribution.jsl
Ora ho 3 tabelle aperte contemporaneamente e non riesco a richiamare la tabella corretta nello script che hai fornito. Sono arrivato addirittura fino a
dt_testdata_ss
dt_testdata_ss_tx
dt_testdata_ss_rx
Quando eseguo il tuo script ricevo il seguente errore quando lo eseguo con la modifica dt A dt_testdata_tx O dt_testdata_rx :
ERRORE: argomento non valido nell'accesso o nella valutazione di 'Close' , Close *###*/(dtSum, nosave)
Posso solo supporre che dt non venga assegnato a dt_testdata_tx o dt_testdata_rx perché la tabella non viene eseguita. Non riesco a capire come richiamare un determinato tavolo da manipolare se tutti e 3 sono aperti. Suggerimenti?
grazie in anticipo
dt = current data table(); // removed this line
dtsum = dt // changed dt to either dt_testdata_ss_tx or dt_testdata_ss_rx
dtFinal = dt // changed dt to either dt_testdata_ss_tx or dt_testdata_ss_rx
Automazione e scriptingAccesso ai datiRi: Funzioni tabella - Tabelle multipleI nomi predefiniti su here(1) rendono tutte le variabili locali.Se vuoi che tutte le variabili siano globali, lascia fuori questa riga.
Altrimenti potresti passarli usando variabili globali.Una variabile globale in JSL inizia con due due punti "::".Aggiungo g_ per denotare che questa è una variabile globale.
::g_dt_testdata_ss_tx = foo bar ...
Ri: Funzioni tabella - Tabelle multipleFunziona alla grande grazie.. In realtà ho riscontrato un piccolo problema con il mio script che non mi permetteva di cambiare tabella..
Ora il mio problema è che ho 4 tabelle aperte e verranno utilizzate individualmente in uno script Include().. Non riesco a capire come selezionare la tabella dati nel nuovo script.. Sembra che le variabili non vengano passate al nuovo script..
Se ho 4 nomi di tabella, fa questo Names To Default Here(1); memorizzarlo solo sulle variabili della tabella dati in quello script che le ha originate? Ho provato i nomi predefiniti qui (0); che pensavo fosse assegnato a livello globale...
Eventuali suggerimenti?
Grazie
Ri: Funzioni tabella - Tabelle multiplePenso che dovesse essere il modo in cui venivano assegnate le tabelle/variabili. Sono le cose semplici che causano più problemi..
Un problema di calcolo: cosa c'è che non va a causa di un semplice errore di matematica.. Grazie mille per la spiegazione..
Ri: Funzioni tabella - Tabelle multipleSei abbastanza vicino.Per il comando subset non è necessario nominare la tabella.È sufficiente assegnarlo semplicemente a una variabile.Ma dovresti specificare come vuoi che funzioni il sottoinsieme righe selezionate(1), colonne selezionate(0) .
Non so perché chiudi(dtsum, nosave) non funziona, a condizione che tu abbia assegnato dtsum = (una delle variabili della tabella).
Per quanto riguarda dt = tabella dati corrente() - Non lo userei perché hai tre tabelle aperte e quale tabella è corrente potrebbe non essere chiara.Meglio usare semplicemente le variabili della tabella esistente.
// Step 1: Pull in data from server and assign it to dt_testdata_ss
dt_testdata_ss = Open Database( <SERVER string="">, <QUERY string=""> , "dt_testdata_ss" );
// Step 2: creates new table with conditions
dt_testdata_ss_tx = dt_testdata_ss << select where ( (:col_1 == 24) & (:col_2 == 1 ))
<< subset( selected rows( 1 ), selected columns( 0 ));
// Step 2a: uses dt_testdata_ss_tx in graphplot.jsl
// Step 2b: uses dt_testdata_ss_tx in distribution.jsl
// Step 3: creates new table with conditions
dt_testdata_ss << clear row states; // Remove prior selec
dt_testdata_ss_rx = dt_testdata_ss << select where ( (:col_1 == 16) & (:col_2 == 3 ))
<< subset( selected rows( 1 ), selected columns( 0 ));
// Step 3a: uses dt_testdata_ss_rx in graphplot.jsl
// Step 3b: uses dt_testdata_ss_rx in distribution.jsl</QUERY></SERVER>
Ri: Funzioni tabella - Tabelle multipleSe interpreto correttamente il tuo problema, credo che non hai capito bene come funzionano le variabili che puntano alle tabelle di dati e come usarle.Ho messo insieme uno script molto semplice, che crea 3 diverse tabelle di dati.Quindi prosegue e produce un'analisi su ciascuna delle diverse tabelle di dati, in un ordine diverso da quello in cui sono state create.Per ottenere questo risultato ho utilizzato le variabili puntatore della tabella dati.Ho quindi incluso anche una sezione di commenti che illustra come ottenere lo stesso ordine di output se si sceglie di reimpostare la tabella dati corrente, prima di eseguire l'analisi.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << select where( :sex == "F" );
dtFemale = dt << subset( selected rows( 1 ), selected columns( 0 ) );
dt << invert row selection;
dtMale = dt << subset( selected rows( 1 ), selected columns( 0 ) );
dtFemale << Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
dtMale << Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
dt << Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
// Or
/*current data table( dtFemale );
Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
current data table( dtMale );
Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);
current data table( dt );
Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 )
);*/