Tabella divisa in base all'elenco dei nomi delle colonneCiao comunità JMP, spero che tu possa aiutarmi con questo problema:
Ho creato uno script che consente agli utenti di calcolare i valori SD 1x, 2x e/o 3x per diverse concentrazioni di campione con un dato fattore (da inserire). I valori SD 1x, 2x e/o 3x possono essere tutti scelti tramite 3 caselle di controllo. Questa prima parte funziona perfettamente.
In base alla quantità selezionata di caselle di controllo, la tabella dati risultante fornisce una quantità variabile di colonne che vorrei suddividere in una nuova tabella dati.
Ho provato a creare un secondo script che divide la tabella dati in base a tutte le colonne SD presenti (sempre partendo dalla colonna 3) ma senza successo. Questo è il mio script finora:
Names Default To Here( 1 );
dt1 = Data Table( "SD Calculation" );
//Get list of Column names
ColList = dt1 << Get Column Names();
//Split dt1 based on ColList
dt2 = Data Table( "SD Calculation" ) << Split(
Split By( :nomRP ),
Split( ColList[3] ),
Remaining Columns( Drop All ),
Sort by Column Property
);
La tabella divisa risultante è simile alla seguente e manca la maggior parte dei dati:

Questo è come dovrebbe apparire (posso ottenere questo risultato solo specificando tutti i nomi delle colonne, tuttavia, non tutte le colonne saranno presenti in ciascuna tabella (è basato sulla selezione dell'utente):

Una volta scelti tutti i calcoli della DS (±1-3 DS per 5 concentrazioni di campioni), dovrebbero essere presenti 30 colonne.
L'obiettivo del mio script:
I valori nomRP sono: 50, 71, 100, 141 e 200 e per ciascuno di questi valori nomRP è possibile calcolare 1-3 volte i valori SD. Tutti i risultati calcolati dovrebbero essere suddivisi in una nuova tabella dati. Con questi dati voglio creare una figura nel Costruttore di grafici che mostri gli intervalli basati sui valori SD calcolati.
Cordiali saluti,
Pim.
-Modifica: aggiunta la tabella "Calcolo SD".
Combinazione e pulizia dei datiRi: Tabella divisa in base all'elenco dei nomi delle colonneMolte grazie Pim/Hadley per la domanda/risposta su questo argomento!
Mi rendo conto che questo è un post vecchio, ma volevo lasciare una briciola per chi verrà dopo.
Stavo cercando di fare qualcosa di simile oggi, sulla falsariga della soluzione di Hadley pubblicata sopra, e allo stesso tempo comprendere il metodo nidificato Approccio Eval(Eval Expr(Expr())) (sto ancora lavorando su quest'ultimo...).
Dopo aver giocato un po' ho scoperto che questo:
dt2 = Data Table( "SD Calculation" ) << Split(
Split By( :nomRP ),
Split(Eval Expr(ColList)),
Remaining Columns( Drop All ),
Sort by Column Property
);Mi dà lo stesso risultato di questo dalla soluzione di Hadley:
Eval(
Eval Expr(
dt2 = Data Table( "SD Calculation" ) << Split(
Split By( :nomRP ),
Split(expr(ColList)),
Remaining Columns( Drop All ),
Sort by Column Property
);
)
);
Ri: Tabella divisa in base all'elenco dei nomi delle colonneHadley, era proprio quello che cercavo.
Grazie mille e anche grazie per aver condiviso il post in merito Eval(Eval Espr(Espr())). Questo mi tornerà utile nelle mie future avventure di scripting!
Ri: Tabella divisa in base all'elenco dei nomi delle colonneCIAO,
Penso che questa sia una di quelle volte in cui Eval(Eval Expr(Expr())) aiuterebbe.Dai un'occhiata al codice qui sotto e vedi se fa quello che speri.Anche ecco un post su questo argomento che spiega questi tipi di metodi.
Names Default to Here(1);
dt1=Data Table("SD Calculation");
//Get list of Column names
ColList=dt1<<GET column="" names=""></GET>