<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao gente,
Mi chiedo solo se c'è comunque da scrivere uno script che estragga i candidati divisi da un'analisi della partizione in una tabella di dati, ordinata per logworth. Questo può essere fatto manualmente quando si adatta un modello di partizione e si fa clic con il pulsante destro del mouse sulla sezione dei candidati.
Perfetto David, proprio quello che stavo cercando
Scott
Lo faccio parecchio.Ecco un esempio del codice che uso
(la risposta alla tua domanda sono le 4 righe nella sezione "estrai la tabella dei candidati"!)
// dati di esempio
dt = Aprire ( "$SAMPLE_DATA/Fitness.jmp" ) ;
dtName = dt << Ottieni nome ;
// seleziona la variabile di risposta
colNames = dt << Ottieni i nomi delle colonne ( corda) ;
nw = Nuova finestra ( "Seleziona Y" , <
libbre = Casella di riepilogo ( colNames , MaxSelezionato( 1 ) , < ( 5 ))
) ;
Se (nw[ "Pulsante" ] ==- 1 , Gettare ()) ;
sel = libbre << Fatti selezionare ;
Se ( Articoli ( sel) == 0 ,
Gettare ()
,
yCol = sel[ 1 ]
) ;
// usa tutte le altre colonne come variabili x
pos = loc ( colNames , yCol) ;
xCol = Rimuovere ( colNames , pos[ 1 ]) ;
// rilascia la colonna del nome
Rimuovere da ( xCol , 1 ) ;
// avvia la piattaforma di partizione
colpetto = Partizione(
Y( val ( yCol) ) ,
X( val ( xCol) ) ,
) ;
// estrai la tabella dei candidati
rappresentante = colpetto << Rapporto ;
candTab = rappresentante[ "Candidati" ][ TableBox ( 1 )] ;
candt = candTab << Trasforma in tabella dati ;
rappresentante << Chiudi la finestra ;
// ordina la tabella dei candidati
candt << Ordinare ( Di( : LogWorth) , Ordine (decrescente) , Sostituisci tabella) ;
// ciliegina sulla torta: aggiungi uno script in modo che le selezioni di riga
// in questa tabella genererà selezioni di colonne nella tabella di origine
val ( Analizza ( Inserimento di valutazione ( "\[
candDt << Nuovo script(
"Seleziona colonne",
cdt = tabella dati corrente();
righe = cdt << Ottieni righe selezionate;
lstNames = Colonna(cdt,"Termine")[righe];
Tabella dati("^dtName^") << Cancella selezione colonna;
Per (i=1,i<=NItems(lstNames),i++,
Column( Data Table("^dtName^"), lstNames ) << Imposta selezionato(1)
)
)
]\" ))) ;
Il risultato finale è una tabella simile a questa:

Ho incluso il codice per lo script Seleziona colonne allegato a questa tabella poiché lo trovo particolarmente utile.Quindi, ad esempio, se selezioni le prime tre righe su questa tabella dei candidati, l'esecuzione dello script selezionerà le colonne corrispondenti nella tabella dei dati di origine.Utile se hai un sacco di colonne.
- Dave