Comment utiliser JSL pour comparer rapidement deux ensembles de colonnes de plage afin d'obtenir le minimum de chaque colonne ?Le titre est un peu difficile à comprendre.
Prenons cette grande classe comme exemple :
1. Tout d'abord, résumez les valeurs moyennes de "taille" et de "poids" selon l'âge.
2. Résumez ensuite la médiane de la "taille" et du "poids" selon l'âge.
3. Comparez ensuite la moyenne et la médiane de la "taille" et prenez leur minimum.
Enfin, comparez la moyenne et la médiane du "poids corporel" et prenez leur minimum.

Je vais utiliser le code suivant et enfin boucler pour obtenir le minimum.
Existe-t-il un bon code qui minimise cette comparaison?
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
d1 = dt << Summary(
Group( :age ),
Mean( :height ),
Mean( :weight ),
Median( :height ),
Median( :weight ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
c = N Col( d1 ) / 2 - 1;
For( i = 1, i <= c, i++,
ca = Column( i + 2 ) << Get Name || "0";
d1 << New Column( ca, formula( Min( As Column( 2 + i ), As Column( 2 + c + i ) ) ) );
d1 << run formulas;
Column( ca ) << deleteFormula;
);
Merci!
ScriptRe : Comment utiliser JSL pour comparer rapidement deux ensembles de colonnes de plage afin d'obtenir le minimum de chaque colonne ?Merci Jim!
Re : Comment utiliser JSL pour comparer rapidement deux ensembles de colonnes de plage afin d'obtenir le minimum de chaque colonne ?Voici une solution plus rapide possible pour vous
Names Default To Here( 1 );
dtOrig = open("$SAMPLE_DATA/semiconductor capability.jmp");
colNames = dtOrig << get column names(continuous);
dt = dtOrig << Summary(
Group( :SITE ),
mean(colnames),median(colnames),
link to original data table(0)
);
half = N Col( dt ) / 2 - 1;
For( i = 3, i <= half, i++,
mat = dt[0, i];
mat = mat || dt[0, i + half];
v = Transpose( V Min( Transpose( mat ) ) );
dt << New Column( "Min" || Substr( Column( dt, i ) << get name, Contains( Column( dt, i ) << get name, "(" ) ),
set values( v )
);
);Re : Comment utiliser JSL pour comparer rapidement deux ensembles de colonnes de plage afin d'obtenir le minimum de chaque colonne ?Et c'est inefficace :
Min( As Column( 2 + i ), As Column( 2 + c + i ) ) )Re : Comment utiliser JSL pour comparer rapidement deux ensembles de colonnes de plage afin d'obtenir le minimum de chaque colonne ?Cette méthode de bouclage est lente lorsque le nombre de colonnes et de lignes à synthétiser à des fins de comparaison est important.
La méthode matricielle est-elle plus rapide ? Ou il existe d'autres bonnes méthodes.
Merci Experts !