Cómo usar el índice de columna (en lugar del nombre de columna) en una fórmula.Hola,
Estoy tratando de hacer esto en un bucle for:
En la tabla actual, tengo 14 Columnas. Las columnas #3~#14 fueron nombradas como "Paso 1" a "Paso 12".
En el bucle for, quiero crear la columna n.° 15 (nombrada como "Delta Step i" para i = 2, i <=12, i++), que se calcula con la fórmula (Col(4) -Col(2)). Luego se eliminó la Columna #3. La misma fórmula se reutilizará en la siguiente iteración.
Dos problemas aquí,
1) mi fórmula no funciona porque no hay ningún valor en la columna n.º 15 de la tabla de salida;
2) Me preocupa que una vez que se detecte la columna 3, los valores en la Columna 15 (en realidad, la Columna 14, después de que se elimine la Columna 3) desaparezcan.
Aquí está mi guión.
For(i=2,i<=15,i++,
DeltaStep = "Delta Step "||Char(i);
New Column(DeltaStep)<<FORMULA></FORMULA>
También probé esto, pero tampoco funcionó.
For(i=2,i<=12,i++,
DeltaStep = "Delta Step "||Char(i);
Pre = Column(3) << getname;
Pst = Column(4) << getname;
New Column(DeltaStep)<<FORMULA></FORMULA>
Re: Cómo usar el índice de columna (en lugar del nombre de columna) en una fórmula.¡Buena atrapada! La gente a menudo olvida que Column(#) o Column("name") necesitan los corchetes vacíos ([]) o el contenedor As Column() para los cálculos por filas. Me gusta pensar en la referencia como un puntero al encabezado de la columna y los atributos, y ref[] expone el vector o la lista de valores.
En cuanto a eliminar columnas, es un mensaje de tabla.También podría haber usado el JSL a continuación sin seleccionar la columna de antemano.
dt << Delete Columns( 3 );
Otro error común es tratar de eliminar una columna que se usa como argumento para otra fórmula de columna.Supongamos que Col 4 usa una fórmula que hace referencia a Col 3. Debe eliminar la fórmula dependiente en la columna 4, luego puede eliminar la columna 3.
Esta es otra razón para usar << Establecer cada valor (expresión) frente a Fórmula (expresión) para la mayoría de los casos, luego las nuevas columnas no están bloqueadas y las dependencias no existen.
Re: Cómo usar el índice de columna (en lugar del nombre de columna) en una fórmula.También me equivoco para la expresión "eliminar columnas".
Adjunto el script correcto aquí, avíseme si hay alguna forma mejor de hacerlo.
¡Gracias!
For(i=2,i<=12,i++,
DeltaStep = "Delta Step "||Char(i);
New Column(DeltaStep,formula(Column(4)[] - Column(3)[]));
Column(3) << Set Selected;
dt << Delete Columns
);
Re: Cómo usar el índice de columna (en lugar del nombre de columna) en una fórmula.Creo que encontré por qué no estoy haciendo esto correctamente...
Para el primer guión de mi publicación, debo agregar [] después de la Columna (3)...
Gracias,
Zihao