Lo script alla fine di questo post fa sostanzialmente quello che voglio che faccia (ovvero, trovare colonne in cui un valore Y è 100 per tempo = 0), ma genera anche un messaggio di registro che mi mette un po' a disagio (avendo fatto un passo avanti nelle trappole prima):
A message with an empty Boolean argument enabled an option that was already enabled. That option remains enabled. In previous versions of JMP, this would have disabled the option.
Questo messaggio viene stampato nel registro per ogni colonna che viene nuovamente selezionata, dopo che è già stata selezionata una volta come parte della mia costruzione del ciclo. Essendo una persona relativamente nuova allo scripting, devo preoccuparmi principalmente:
- Questo messaggio di registro è qualcosa che dovrei assolutamente evitare e avrò problemi? Alla fine elaborerò tabelle più grandi, quindi questo messaggio di registro potrebbe essere stampato centinaia di volte per l'esecuzione di un singolo script.
- C'è un modo più intelligente per trovare tutte le colonne in una tabella che hanno un valore Y = 100 per ogni riga dove tempo = 0? (Nel mio caso, elaborerò tabelle con molte colonne, alcune delle quali contenenti risultati normalizzati al 100% rel. at time =0. Queste sono le colonne che mi interessano.)
Names Default To Here( 1 );
// table required for example
dt = New Table( "Results (absolute & relative) vs time",
Add Rows( 8 ),
New Column( "time",
Numeric,
Set Values( [0, 1, 2, 3, 0, 1, 2, 3] ),
),
New Column( "Y1_absolute",
Numeric,
Set Values( [7, 8, 1, 9, 0.2, 0.4, 0.65, 0.98] ),
),
New Column( "Y1-relative",
Numeric,
Set Values( [100, 114, 14, 129, 100, 200, 325, 490] ),
),
New Column( "Y2_absolute",
Numeric,
Set Values( [12, 6, 4, 0, 80, 90, 120, 75] ),
),
New Column( "Y2_relative",
Numeric,
Set Values( [100, 50, 33, 0, 100, 113, 150, 94] ),
)
);
// selecting columns where for :time == 0 a Y-value == 100 is found
For( i = 1, i <= N Row( dt ), i++,
For( j = 1, j <= N Col( dt ), j++,
If( Column( j )[i] == 0,
For( k = 1, k <= N Col( dt ), k++,
If( Column( k )[i] == 100,
Column( k ) << Set Selected
)
)
)
)
);