Ho modificato un po 'il tuo script, cambiando i tuoi riferimenti dall'uso della funzione: Name (), all'utilizzo delle funzioni Column () e As Column (). Ho anche modificato leggermente la << get call names names. Ma a parte questo, eri sulla strada giusta. La mia sceneggiatura sembra funzionare come volevi
Names Default To Here( 1 );
dt = Current Data Table();
col = dt << get column names( string, continuous );
nc = N Items( col );
For( i = 1, i <= nc, i++,
mu = Col Mean( Column( col[i] ) );
sd = Col Std Dev( Column( col[i] ) );
lo = mu - 3 * sd;
hi = mu + 3 * sd;
rows = dt << Get Rows Where( lo <= as Column( col[i] ) <= hi );
Column( col[i] ) << Color Cells( "Red", rows );
rows = dt << Get Rows Where( as Column( col[i] ) < lo | as Column( col[i] ) > hi );
Column( col[i] ) << Color Cells( "Purple", rows );
lo = mu - 2 * sd;
hi = mu + 2 * sd;
rows = dt << Get Rows Where( lo <= as Column( col[i] ) <= hi );
Column( col[i] ) << Color Cells( "Yellow", rows );
lo = mu - sd;
hi = mu + sd;
rows = dt << Get Rows Where( lo <= as Column( col[i] ) <= hi );
Column( col[i] ) << Color Cells( "Green", rows );
);
Il mio obiettivo originale era quello di colorare le celle in una singola colonna in base al valore di una determinata cella: entro 1 sigma,> 1 sigma ma <2 sigma,> 2 sigma ma
sigma e> 3 sigma, il sigma è la deviazione standard della stessa colonna. Ora spero di scorrere su tutte le colonne ed eseguire la colorazione condizionale su tutte, ma il mio codice for loop come segue non funziona.
col = dt << ottieni i nomi delle colonne (stringa); NC = nitems (col); per (i = 2, i <= nc, i ++, mu = Col Mean (: Name (col [i])); sd = Col Std Dev (: Name (col [i])); lo = mu - 3 * sd; hi = mu + 3 * sd; righe = dt << Ottieni righe dove (lo <=: Nome (col [i]) <= hi);: Nome (col [i]) << Celle di colore ("Rosso ", file); file = dt << Ottieni righe dove (: Nome (col [i]) ciao);: Nome (col [i]) << Celle colore ( "Viola", righe); lo = mu - 2 * sd; hi = mu + 2 * sd; righe = dt << Ottieni righe dove (lo <=: Nome (col [i]) <= hi);: Nome (col [i]) << Celle di colore ("Giallo", righe); lo = mu - sd; hi = mu + sd; righe = dt << Ottieni righe dove (lo <=: Nome (col [i]) <= hi);: Nome (col [i]) << Celle di colore ("Verde", righe););