Cómo encontrar valores máximos y mínimos de columnas con determinadas palabras clave en los nombres de las columnasHola, estoy intentando procesar conjuntos de datos para encontrar los valores máximos de determinadas columnas (según determinadas palabras clave en los nombres de las columnas). La cantidad de columnas puede variar para cada conjunto de datos, pero el nombre de la columna "palabras clave" seguirá siendo el mismo. Estoy intentando crear un script que pueda funcionar en diferentes conjuntos de datos. A continuación, se muestra un ejemplo simple de una tabla de datos para ilustrarlo:
| Fila | datos1_volt_grp1 | datos1_volt_grp2 | datos2_volt_grp1 | datos2_volt_grp2 | datos_actuales_A_grp1 | datos_actuales_A_grp2 | datos2_actual_A_grp1 | datos2_actual_A_grp2 | grupo_voltio_máximo1 | grupo_actual_máximo2 |
| 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. Es necesario encontrar los valores máximos de las columnas cuyo nombre consta de volt y grp1 y completar estos datos en la nueva columna "max_volt_grp1".
2. Es necesario encontrar los valores máximos de las columnas cuyo nombre de columna consta de current y grp2 y completar estos datos en la nueva columna "max_current_grp2".
3. Los resultados esperados están en las últimas 2 columnas.
Gracias.
Automatización y scriptingRe: Cómo encontrar valores máximos y mínimos de columnas con determinadas palabras clave en los nombres de las columnasAsí es como lo haría para crear la columna 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: Cómo encontrar valores máximos y mínimos de columnas con determinadas palabras clave en los nombres de las columnasHola Jim,
La solución obtiene el valor máximo de esas columnas para todas las filas. Busco que el script rellene el valor máximo de cada fila por separado (el número de filas también variará según el conjunto de datos). Se espera un resultado para cada fila como el de la columna resaltada. Gracias por su ayuda.

Re: Cómo encontrar valores máximos y mínimos de columnas con determinadas palabras clave en los nombres de las columnasFue mi error. Probé este método. No me gusta usar la metodología Eval(Parse()), pero era la única forma de que funcionara.
El código crea una cadena de caracteres que contiene el JSL necesario para crear la nueva columna y luego ejecuta el 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: Cómo encontrar valores máximos y mínimos de columnas con determinadas palabras clave en los nombres de las columnasGracias Jim. Los scripts funcionan como se esperaba.