Suma todas las columnas que contienen una cadena en el nombre de la columna<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Estoy intentando tomar una tabla de datos y agregar una columna con una fórmula que suma todas las columnas que contienen la cadena "ToAdd" en el nombre de la columna. Estoy tratando de escribir esto porque las columnas que tendrán "ToAdd" en algún lugar del nombre cambiarán.
Hasta ahora, tengo la secuencia de comandos que puede recopilar todos los nombres de columna en una lista, pero no estoy seguro de cómo usar esa lista para generar una nueva columna con una fórmula que sume todas esas columnas. Parecía la mejor manera de comenzar, pero no estoy seguro de a dónde ir desde aquí (o si realmente es una buena manera de comenzar)
dt = tabla de datos actual ();
N = N Col (dt);
AddColumns = {};
Para (i = 1, i <= N, i ++,
colname = Columna (i) << getname ();
Si (Contiene (colname, "ToAdd")> 1,
Insertar en (AddColumns, colname)
);
)
);
Gracias por cualquier ayuda por adelantado!
Re: Suma todas las columnas que contienen una cadena en el nombre de la columna¡Funciona de maravilla!
Gracias,
Daniel
Re: Suma todas las columnas que contienen una cadena en el nombre de la columnaEs un buen comienzo. Sin embargo, establecer fórmulas de columna por script es un poco complicado ya que el argumento se interpreta literalmente. La creación de una fórmula de forma dinámica generalmente implica la creación de cadenas o expresiones que finalmente se analizan / evalúan. De lo contrario, las variables locales o específicas de la sesión terminarán en la fórmula y no funcionarán como se esperaba. Al menos esa es mi experiencia.
Aquí hay un ejemplo usando el enfoque de cadena:
dt = Tabla de datos actual () ;
norte = N Col ( dt ) ;
s = "" ;
por ( yo = 1 , yo <= norte , yo ++,
colname = Columna ( yo ) << obtener nombre () ;
Si ( Contiene ( colname , "ToAdd" ) > 0 ,
s = s || Si ( Longitud ( s ) > 0 , " , "" ) || colname
) ;
) ;
espectáculo ( s ) ;
columna = dt << Nueva Columna ( "Suma (AddColumns)" , numérico ) ;
Evaluar ( Analizar gramaticalmente ( Eval Insert ( "col << establecer fórmula (suma (^ s ^))" ) ) ) ;