Come trovare i valori massimi/minimi dalle colonne con una determinata parola chiave nei nomi delle colonneCiao, sto cercando di elaborare set di dati per trovare i valori massimi di determinate colonne (in base a determinate parole chiave nei nomi delle colonne). Il numero di colonne può variare per ogni set di dati, ma il nome della colonna "parole chiave" rimarrà lo stesso. Sto cercando di creare uno script che potrebbe funzionare su diversi set di dati. Di seguito è riportato un semplice esempio di una tabella di dati per illustrarlo:
| Riga | dati1_volt_grp1 | dati1_volt_grp2 | dati2_volt_grp1 | dati2_volt_grp2 | dati_correnti_A_grp1 | dati_correnti_A_grp2 | dati2_corrente_A_grp1 | dati2_corrente_A_grp2 | max_volt_grp1 | max_gruppo_corrente2 |
| A | 0,5 | 0,8 | 0,7 | 0,2 | 1.2 | 1.4 | 0,9 | 1.8 | 0,7 | 1.8 |
| B | 0,6 | 0,9 | 0,3 | 0,4 | 1 | 1.1 | 1.5 | 0,8 | 0,6 | 1.1 |
1. Bisogna trovare i valori massimi delle colonne con nome di colonna composto da volt e grp1 nella denominazione. E popolare questi dati nella nuova colonna "max_volt_grp1".
2. Bisogna trovare i valori massimi delle colonne con nome di colonna composto da current e grp2 nella denominazione. E popolare questi dati nella nuova colonna "max_current_grp2".
3. I risultati attesi si trovano nelle ultime 2 colonne.
Grazie.
Automazione e scriptingRe: Come trovare i valori massimi/minimi dalle colonne con una determinata parola chiave nei nomi delle colonneEcco come farei per creare la colonna Max_volt_grp

Names Default To Here( 1 );
dt = Current Data Table();
colNames = dt << get column names( string );
valueMatrix = [];
//col = "data1_volt_grp1"
For Each( {col}, colNames,
If( Contains( col, "volt" ) & Contains( col, "grp1" ),
valueMatrix = valueMatrix |/ Matrix( Column( col ) << get values )
)
);
If( Length( valueMatrix ) > 0,
dt << New Column( "Max_volt_grp1" );
:Max_volt_grp1[1] = Max( valueMatrix );
);Re: Come trovare i valori massimi/minimi dalle colonne con una determinata parola chiave nei nomi delle colonneCiao Jim,
La soluzione ottiene il valore massimo su quelle colonne per l'intero numero di righe. Sto cercando lo script per far sì che il valore massimo della colonna venga popolato per ogni riga separatamente (il numero di righe varierà anche in base al set di dati). Mi aspetto un output per ogni riga come nella colonna evidenziata. Grazie per il tuo aiuto.

Re: Come trovare i valori massimi/minimi dalle colonne con una determinata parola chiave nei nomi delle colonneIl mio errore, prova questo metodo. Non mi piace usare questa metodologia Eval(Parse()), ma era l'unico modo in cui potevo farla funzionare.
Il codice crea una stringa di caratteri che contiene il JSL necessario per creare la nuova colonna, quindi esegue il JSL
Names Default To Here( 1 );
dt = Current Data Table();
colNames = dt << get column names( string );
// Build a list of the columns to be evaluated
theCols = "";
For Each( {col}, colNames,
If( Contains( col, "volt" ) & Contains( col, "grp1" ),
theCols = theCols || ", :" || col
)
);
// Create the new column and formula command, adding in the list of
// columns ceated in the above loop and then executing it
Eval(
Parse(
"dt << new column(\!"max_volt_grp1\!",formula(Max(" ||
Substr( theCols, 2 ) || ")));"
)
);Re: Come trovare i valori massimi/minimi dalle colonne con una determinata parola chiave nei nomi delle colonneGrazie Jim. Gli script funzionano come previsto.