Ciao comunità JMP, spero che tu possa aiutarmi con questo problema:
Ho creato uno script che consente agli utenti di calcolare valori SD 1x, 2x e/o 3x per diverse concentrazioni di campioni con un dato fattore (da inserire). I valori SD 1x, 2x e/o 3x possono essere selezionati 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 costruire un secondo script che divide la tabella dati in base a tutte le colonne SD presenti (sempre a partire dalla colonna 3) ma senza successo. Questo è il mio script finora:
Nomi predefiniti qui (1);
dt1=Tabella dati("Calcolo SD");
//Ottieni l'elenco dei nomi delle colonne
ColList=dt1<
//Split dt1 basato su ColList
dt2=Tabella dati( "Calcolo SD" ) << Dividi(
Dividi per( :nomRP ),
Dividi(ListaCol[3]),
Colonne rimanenti (rilascia tutto),
Ordina per proprietà della colonna
);
La tabella divisa risultante ha questo aspetto e manca la maggior parte dei dati:

Ecco come dovrebbe apparire (posso ottenerlo solo specificando tutti i nomi di colonna, tuttavia, non tutte le colonne saranno presenti in ogni tabella (è basato sulla selezione dell'utente):

Quando vengono scelti tutti i calcoli della DS (±1-3 DS per 5 concentrazioni di campioni), dovrebbero essere presenti 30 colonne.
L'obiettivo per il mio script:
I valori nomRP sono: 50, 71, 100, 141 e 200 e i valori 1-3x SD possono essere calcolati per ciascuno di questi valori nomRP. Tutti i risultati calcolati devono essere suddivisi in una nuova tabella di dati. Con questi dati voglio costruire una figura nel Graph Builder che mostri intervalli basati sui valori SD calcolati.
Cordiali saluti,
Pim.
Ciao,
Penso che questa sia una di quelle volte in cui Eval(Eval Expr(Expr())) sarebbe d'aiuto.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>Hadley, era esattamente quello che stavo cercando.
Grazie mille e grazie anche per aver condiviso il post su Val(Eval Espr(Espr())). Questo tornerà utile nelle mie future avventure di scripting!