Le script à la fin de cet article fait essentiellement ce que je veux qu'il fasse (c'est-à-dire, trouver des colonnes où une valeur Y est 100 pour time = 0), mais il génère également un message de journal qui me met un peu mal à l'aise (après avoir fait un pas dans des pièges avant):
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.
Ce message est imprimé dans le journal pour chaque colonne qui est à nouveau sélectionnée, après avoir déjà été sélectionnée une fois dans le cadre de ma construction de boucle. En tant que personne relativement nouvelle dans le domaine des scripts, j'ai des préoccupations principales :
- Ce message de journal est-il quelque chose que je dois absolument éviter et vais-je rencontrer des problèmes ? Je traiterai éventuellement des tables plus volumineuses, de sorte que ce message de journal peut être imprimé des centaines de fois pour une seule exécution de script.
- Existe-t-il un moyen plus intelligent de rechercher toutes les colonnes d'une table qui ont une valeur Y = 100 pour chaque ligne où time = 0 ? (Dans mon cas, je traiterai des tables avec de nombreuses colonnes, certaines d'entre elles contenant des résultats normalisés à 100 % rel. au temps = 0. Ce sont les colonnes qui m'intéressent.)
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
)
)
)
)
);