Come eseguire lo script per ogni campione in un elenco se sono presenti più voci per campione nella tabella dati.Ho una tabella di dati in cui gli stessi campioni sono stati misurati più volte (vedi esempio sotto). I campioni sono separati dal loro identificatore.

Voglio che il mio script sia in grado di eseguire lo stesso set di calcoli su ciascun campione in modo da poter determinare i limiti di controllo e creare un grafico di controllo per A, B, C, ecc. Non conosco l'identificatore di ciascun campione. Ho già uno script che può fare i miei calcoli e creare i grafici per me, semplicemente non può fare calcoli separati per ogni identificatore.
Il mio passaggio iniziale è stato quello di utilizzare una sorta di ciclo per farlo. Ho uno script che restituisce ogni identificatore univoco in un elenco e mi dà il numero di identificatori univoci come impostazione per il ciclo.
Identifiers = Column( "Identifier") << GetAsMatrix();
Identifiers set = Associative Array( Identifiers);
Unique Identifiers = Identifiers set << Get Keys;
nUnique Identifiers = N Items (Unique Identifiers);
Non riesco proprio a far funzionare un ciclo però. C'è un modo migliore per farlo? O qualcuno potrebbe mostrarmi come fare il ciclo?
Sto usando JMP 10.
Grazie!
ScriptingRe: Come eseguire lo script per ogni campione in un elenco se ci sono più voci per campione nella tabella dati.Ci sono molti modi per farlo, ma uno è semplicemente aggiungere un filtro dati locale alle tue piattaforme esistenti.Ecco un esempio di utilizzo del generatore di grafici:
Names default to here(1);
//Open some sample data
dt = Open( "$Sample_data/big class.jmp" );
//Your code
Identifiers = Column( "age") << GetAsMatrix();
Identifiers set = Associative Array( Identifiers);
Unique Identifiers = Identifiers set << Get Keys;
nUnique Identifiers = N Items (Unique Identifiers);
//A window to hold a bunch of graphs
win = New Window("Graphs", graphbox = v list box());
//Open a graph that is filtered to only show each unique identifier
//to keep things organized add it to a single window.
for( i=1, i<=nUnique Identifiers, i++,
win << Append(<BR /> //To get this script I opened graph builder and added a local data filter for one age<BR /> //and then copied/pasted it here and replaced the age with 4Unique Identifiers[i]
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 2 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == Unique Identifiers[i] ),
Display( :age, N Items( 6 ) )
)
)
)
)
);Re: Come eseguire lo script per ogni campione in un elenco se ci sono più voci per campione nella tabella dati.Mi chiedo se l'utilizzo delle piattaforme di carte di controllo integrate per calcolare i limiti e le misure del grafico funzionerebbe, soprattutto se assegni l'identificatore al ruolo di analisi Per.
Semplicemente non voglio che tu passi molto tempo a scrivere script se duplica le funzionalità già disponibili.
Ri: Come eseguire lo script per ogni esempio in un elenco se sono presenti più voci per campione nella tabella dati.Come potrei eseguire calcoli aggiuntivi filtrati dall'identificatore? Voglio fare un po' di manipolazione dei dati e quindi calcolare i miei limiti in base ai dati per identificatore che verrebbero quindi aggiunti a ciascuno dei grafici, quindi penso che qualsiasi tipo di filtro dovrebbe venire prima dello script del grafico finale. Ho uno script che può farlo e posso pubblicarlo se necessario, ma è piuttosto lungo. Sto davvero solo cercando un modo per creare lo script che ho già eseguito per ogni identificatore piuttosto che per tutte le righe nella tabella dei dati