Impossibile ottenere i nomi di colonna in multivariatoCiao,
Sto cercando di automatizzare un processo. Ecco una panoramica della parte iniziale:
-Tabulate
-Make table
Esegui il multivariato su tutte le colonne continue, così posso ottenere una matrice di correlazione
Sto lottando sulla parte multivariata in fuga. Non sono sicuro di come ottenerlo per inserire le colonne che voglio lì. Funziona se conosco i nomi delle colonne e li inserisco in questa parte:
multivariata (
Y ( NOMI DELLA COLONNA QUI ) ,
Ma non conosco i nomi delle colonne, quindi mi piacerebbe inserire una variabile di elenco o qualcosa per adattarla. Qualsiasi aiuto è molto apprezzato!
Ecco il tutto:
dt = data table("wpu10");
tab1= dt<<TABULATE></TABULATE>
Ri: Impossibile ottenere i nomi di colonna in multivariatoEri abbastanza vicino .... prova questo
Names Default To Here( 1 );
dt = Data Table( "wpu10" );
tab1 = dt << Tabulate(
Add Table( Column Table( Grouping Columns( :series_id, :series_title ), Analysis Columns( :value ) ), Row Table( Grouping Columns( :year ) ) )
);
dtTab1 = tab1 << makeintodatatable;
dtTab1 << set name( "dtTab1" );
// Get Column names returns a list
colnameslist = dtTab1 << get column names( Continuous, string );
Multivariate(
Y( Eval List( colnameslist ) ),
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
Ri: Impossibile ottenere i nomi di colonna in multivariatoL'argomento Y () prevede riferimenti a una o colonna, non nomi (stringhe di caratteri). Ecco un altro modo per farlo funzionare:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
col name = dt << Get Column Names( "Continuous" );
col expr = Expr( Y() );
For( i = 1, i <= N Items( col name ), i++,
Insert Into( col expr, Column( col name[i] ) );
);
Eval(
Substitute(
Expr(
Multivariate(
yyy,
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
),
Expr( yyy ),
Name Expr( col expr )
)
);Ri: Impossibile ottenere i nomi di colonna in multivariatograzie per l'assistenza, ma sembra che abbia ancora problemi. l'ho tolto dal mio registro nel caso in cui aiuti:
"Somma (valore, WPU106, dati sulle materie prime PPI per metalli e prodotti in metallo-Apparecchiature di riscaldamento, non destagionalizzate)",
"Somma (valore, WPU107, dati sulle materie prime PPI per metalli e prodotti in metallo - Prodotti in metallo strutturale fabbricati, non destagionalizzati)",
Il ruolo richiede almeno 1 colonne.}
), Multivariato (/ * ### * / Y (Eval List (colnameslist)),
Metodo di stima ("Pairwise"),
Formato matrice ("Quadrato"),Ri: Impossibile ottenere i nomi di colonna in multivariatoHo provato ad adattare il tuo solutino ma non sono riuscito a darmi il risultato multivariato.
Penso che il problema sia che non conosco i nomi delle colonne. ho bisogno di un modo per ottenere i nomi dopo aver eseguito "dtTab1 = tab1 << makeintodatatable;"
Forse il tuo codice mi mostra ma ancora fatica a vedere come. hai bisogno dei nomi delle colonne in cui hai yyy o che sarà un varaible che avrà i nomi?
Ri: Impossibile ottenere i nomi di colonna in multivariatoNon vedo come siano correlati questi errori. Stai cercando di utilizzare le etichette Tabulate come nomi di colonna per Multivariate nel ruolo Y?
Dimentica la sceneggiatura per ora. Puoi raggiungere interattivamente il risultato? Cioè, ottenere interattivamente il riepilogo con Tabulate, salvare i risultati in una nuova tabella di dati e avviare Multivariate?
Nomi di colonne come "Somma (... ) "verrà interpretato come una chiamata di funzione anziché come riferimento di una colonna nella chiamata Eval List () senza una gestione speciale.
Ri: Impossibile ottenere i nomi di colonna in multivariatoIl problema che si verifica è rappresentato dai nomi complessi che vengono generati quando si crea la tabella dalla tabella Tabulate. Nello script seguente, ho scambiato il tabulato per una piattaforma di riepilogo. Ciò non elimina il problema del nome complesso, ma crea una tabella di dati in una sola azione rapida, che per la maggior parte è identica all'output Tabulate. Quello che fa lo script per gestire i nomi complessi, è la posizione attorno a ciascun elemento nell'elenco dei nomi di colonna la funzione: Name (), per specificare direttamente a JMP per trattare il contenuto della funzione come un nome di colonna. Infine, questo elenco viene passato alla piattaforma multivariata per eseguire l'analisi.
Names Default To Here( 1 );
dt = Data Table( "wpu10" );
/*tab1 = dt << Tabulate(
Add Table( Column Table( Grouping Columns( :series_id, :series_title ), Analysis Columns( :value) ), Row Table( Grouping Columns( :year) ) )
);
dtTab1 = tab1 << makeintodatatable;
dtTab1 << set name( "dtTab1" );*/
// Create the data table directly
dtTab1 = dt << Summary(
Group( :year ),
Sum( :value ),
Subgroup( :series_id, :series_title ),
Freq( "None" ),
Weight( "None" )
);
// Get Column names returns a list
colnameslist = dtTab1 << get column names( Continuous,string);
// Get rid of the Row Number column from the list
colnameslist = remove( colnameslist, 2, 1 );
// Create a new list adding the :Name() function around each column name
// to handle the complex names the summary gave them
thelist={};
For( i = 1, i <= N Items( colnameslist ), i++,
xx = colnameslist[i];
Insert Into( thelist, Parse( Eval Insert( ":Name(\!"^xx^\!")" ) ) );
);
// Run the correlations
dtTab1 << Multivariate(
Y( eval(thelist) ),
Estimation Method( "Pairwise" ),
Matrix Format( "Square" ),
Scatterplot Matrix( Density Ellipses( 1 ), Shaded Ellipses( 0 ), Ellipse Color( 3 ) )
);
Inoltre, sosterrò @markbailey nel suo commento sulla possibilità di effettuare analisi interattive. Se questa non è un'analisi che farai più e più volte, perché preoccuparsi di creare uno script.
Ri: Impossibile ottenere i nomi di colonna in multivariatoGrazie mille per il tuo aiuto! Ho finito per fare tutto punta e clicca. Ho provato a seguire il tuo ultimo messaggio stamattina, ma ancora un po 'perso. I nomi delle colonne potrebbero sicuramente essere un problema. Inoltre, quando lo faccio manualmente e arrivo alla tabella dtTab1, quindi vado su Analizza> Metodi multivariati> JMP multivariato pensa che voglio farlo alla tabella dt. non è fino alla seconda volta che eseguo questo processo, JMP si rende conto che voglio farlo sulla nuova tabella.
Sto usando JMP 12, quindi non so se anche questo mi sta causando problemi.
Ri: Impossibile ottenere i nomi di colonna in multivariatoPuoi condividere un campione della tua tabella di dati?
Ri: Impossibile ottenere i nomi di colonna in multivariatoSì, quello che ho allegato è il tavolo in cui sono stato bloccato nel codice con cui mi hai aiutato. Voglio passare da questa tabella (dtTab1) a una tabella dei coefficienti di correlazione, come quella creata dall'analisi> metodi multivariati> output multivariato.
Come ho già detto anche quando faccio i passaggi per farlo manualmente è un po 'strano. Dopo la creazione di dtTab1, la prima volta che eseguo i passaggi descritti in precedenza, la richiesta per le colonne di eseguire l'analisi multivariata proviene dalla tabella iniziale (tutti gli indici in una colonna con il nome in un'altra colonna. Lasciami sapere se vuoi anche quello)