¿Cómo se usa JSL para comparar rápidamente dos conjuntos de columnas de rango para obtener el mínimo de cada columna?El título es un poco difícil de entender.
Tome esta gran clase como ejemplo:
1. Primero, resuma los valores promedio de "altura" y "peso" por edad.
2. Luego resuma la mediana de "altura" y "peso" por edad.
3. Luego compare la media y la mediana de "altura" y tome su mínimo.
Finalmente, compare la media y la mediana del "peso corporal" y tome su mínimo.

Usaré el siguiente código y finalmente recorreré para obtener el mínimo.
¿Hay algún buen código que minimice esta comparación?
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;
);
¡Gracias!
secuencias de comandosRe: ¿Cómo uso JSL para comparar rápidamente dos conjuntos de columnas de rango para obtener el mínimo de cada columna?¡Gracias Jim!
Re: ¿Cómo uso JSL para comparar rápidamente dos conjuntos de columnas de rango para obtener el mínimo de cada columna?Aquí hay una posible solución más rápida para usted
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: ¿Cómo uso JSL para comparar rápidamente dos conjuntos de columnas de rango para obtener el mínimo de cada columna?Y es ineficiente:
Min( Como columna( 2 + i ), Como columna( 2 + c + i ) ) )Re: ¿Cómo uso JSL para comparar rápidamente dos conjuntos de columnas de rango para obtener el mínimo de cada columna?Este método de bucle es lento cuando el número de columnas y filas que deben resumirse para la comparación es grande.
¿El método matricial es más rápido? O hay otras buenas maneras.
¡Gracias expertos!