variabile Y dinamica per l'analisi unidirezionaleCiao a tutti,
Sto provando a creare uno script di una variabile Y dinamica per l'analisi unidirezionale, quindi emettere la media in una tabella combinata. È un modo corretto per farlo?
dt = Data Table ("Analysis");
ColNamesList = d1 << get column names (string );
For( i = N Items( ColNamesList ), i >= 1, i--,
OW = (dt << Oneway( Y( Column(ColNamesList) ),
X(:SITE),
Mean ( 1 ),
Automatic Recalc( 0 )
)) << Report;
);
dtCombined = Report( OW[1] )[Table Box( 1 )] << Make Combined Data Table;Grazie in anticipo !
AnaliticaTabella datiSceneggiaturaRe: variabile Y dinamica per analisi unidirezionaleEseguilo: funziona per il tuo tavolo?
Se sì, questo è un modo corretto per farlo!
In caso negativo, facci sapere dove hai avuto problemi?
Re: variabile Y dinamica per analisi unidirezionaleSiamo spiacenti, ho cliccato accidentalmente sul pulsante della soluzione.
Lo script non ha richiesto alcun errore. Ma non c'era nemmeno un grafico visto come output.
Il registro degli script mostra solo script.
Re: variabile Y dinamica per analisi unidirezionaleCara @XiangCD_MP_Utente , Ho avuto diversi problemi con il tuo script. Se ho ottenuto il tuo compito, sta eseguendo un'analisi unidirezionale per ogni colonna continua della tabella dei dati per :site e salvando la tabella dei dati con la media.
Se è così, lo farei come segue:
In alternativa ci sono altre possibilità, ad es. mettere tutto insieme in un'unica istruzione "Fit Group". Il modo migliore dipende dalle tue capacità di scripting e dall'ambiente esatto in cui dovrebbe essere eseguito.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// dt = Data Table ("Analysis");
OW_lst = {};
ColNamesList = dt << get column names( string, "Continuous" );
// When using single report windows, you would need to collect the result table from each of them
/*
For( i = N Items( ColNamesList ), i >= 1, i--,
Insert Into( OW_lst, dt << Oneway( Y( Column( ColNamesList[i] ) ), X( :sex ), Means( 1 ), Automatic Recalc( 0 ) ) )
);
*/
// Generate new report window to collect all analyses
nw = New Window( "Oneway Collection",
hlb = H List Box(
For( i = N Items( ColNamesList ), i >= 1, i--,
// collect references to each analysis in OW_lst
Insert Into( OW_lst, dt << Oneway( Y( Column( ColNamesList[i] ) ), X( :sex ), Means( 1 ), Automatic Recalc( 0 ) ) )
)
)
);
// Message will collect all similar tables in one data table
dtCombined = Report( OW_lst[1] )[Table Box( 1 )] << Make Combined Data Table;
// Alternatively you would be able to get the same result w/o working with a list like follows
//(nw << XPATH( "//TableBox" ))[2] << Make Combined Data Table;Re: variabile Y dinamica per analisi unidirezionale@XiangCD_MP_Utente ,
Potresti provare a utilizzare lo Screening della risposta nel menu Analizza>Screening. È comunque possibile trasferire l'elenco dei nomi delle colonne nel segnaposto della variabile Y. L'output di Screening risposta consentirà a un'opzione nel triangolo rosso di salvare le medie per ciascun livello X o una tabella Pvalues che ha la media per ogni Y.
Inoltre, se trovi tutte le colonne che corrispondono a una stringa e le inserisci in un elenco (che assomiglia a quello che stai facendo), puoi usare il nome della variabile (usando Eval()) all'interno della variabile Y di Screening risposta. Oppure puoi raggrupparli in un gruppo di colonne e fare riferimento al gruppo di colonne in Screening risposta. In effetti, eseguirà il ciclo come desideri ed è dinamico.
Qualcosa di simile a:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Probe.jmp" );
dt << Response Screening(
X( :Process ),
Y( Column Group( "Responses" ) ),
PValues Table on Launch( 1 ),
Save Means
);
Questo restituisce i valori p e la media di Y per ogni confronto.