In che modo utilizzare JSL per confrontare rapidamente due serie di colonne di intervallo per ottenere il minimo di ciascuna colonna?Il titolo è un po' difficile da capire.
Prendi questa grande classe come esempio:
1. In primo luogo, riassumere i valori medi di "altezza" e "peso" per età.
2. Quindi riassumere la mediana di "altezza" e "peso" per età.
3. Quindi confronta la media e la mediana di "altezza" e prendi il loro minimo.
Infine, confronta la media e la mediana del "peso corporeo" e prendi il loro minimo.

Userò il codice seguente e infine scorrerò per ottenere il minimo.
Esiste un buon codice che riduce al minimo questo confronto?
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;
);
Grazie!
SceneggiaturaRi: Come utilizzare JSL per confrontare rapidamente due serie di colonne di intervallo per ottenere il minimo di ciascuna colonna?Grazie Jim!
Ri: Come utilizzare JSL per confrontare rapidamente due serie di colonne di intervallo per ottenere il minimo di ciascuna colonna?Ecco una possibile soluzione più rapida per te
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 )
);
);Ri: Come utilizzare JSL per confrontare rapidamente due serie di colonne di intervallo per ottenere il minimo di ciascuna colonna?Ed è inefficiente:
Min( As Column( 2 + i ), As Column ( 2 + c + i ) ) )Ri: Come utilizzare JSL per confrontare rapidamente due serie di colonne di intervallo per ottenere il minimo di ciascuna colonna?Questo metodo di ciclo è lento quando il numero di colonne e righe che devono essere riepilogate per il confronto è elevato.
Il metodo della matrice è più veloce? Oppure ci sono altri buoni modi.
Grazie Esperti!