Usar la columna seleccionada para la fórmula en una nueva columnaHola,
intento generar un script donde tengo que seleccionar una columna. Con esta selección, creo una nueva columna, que contiene una fórmula (con la columna seleccionada). Aquí está mi enfoque:
dt = Current Data Table ();
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box( all ), dt << New Table Variable( "Selected Column", lb <<get selected ),
Button Box( "Moving Average", dt <<New Column ("Movin Average", Numeric, Formula (:Range + "selected Column") )
));
Tengo dos problemas:
1. ¿Cómo puedo generar una variable de columna mediante la selección?
2. ¿Cómo puedo usar esta variable en mi fórmula? Para "Rango" (numérico) es posible, pero para la columna seleccionada (carácter) no.
Re: Usar la columna seleccionada para la fórmula en una nueva columnaHigh Jim, este es un gran guión.¿Es posible crear columnas de Fórmula adicionales (Col Mean() ...) agregando botones de fórmula adicionales?
Re: Usar la columna seleccionada para la fórmula en una nueva columna¡Gracias!
Re: Usar la columna seleccionada para la fórmula en una nueva columnaEl código se queja de que el valor de Range no es una cadena de caracteres.Entonces, para corregir eso, el siguiente código obliga a que tanto el valor del rango como el nombre de la columna vuelvan a ser cadenas de caracteres, mediante el uso de la función char() para asegurarse de que sean cadenas de caracteres.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( char(dt << get table variable( "Range" )) || " + :" || char((lb << get selected)[1]) )
)
)
)
);Re: Usar la columna seleccionada para la fórmula en una nueva columna¡Gracias!
Si miro el código, debería ser exactamente lo que estoy buscando. Pero tengo un mensaje de error:
el argumento debe ser un carácter en el acceso o la evaluación de 'Concat', Bad Argument ((lb << se selecciona) [1]), dt << get table variable ("Rango") || /*###*/" + :" || /*###*/(lb << ser seleccionado
)[1] /*###*/
Como variable de tabla obtuve la columna seleccionada. Pero la evaluación de la fórmula para la nueva columna no es posible.
¿Tengo que cambiar alguna preferencia en mi versión de JMP?
Re: Usar la columna seleccionada para la fórmula en una nueva columnaAquí hay un ejemplo de trabajo de una secuencia de comandos que hará lo que creo que intentó hacer su secuencia de comandos original.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( dt << get table variable( "Range" ) || " + :" || (lb << get selected)[1] )
)
)
)
);
Ahora el problema que tengo es entender un par de elementos.
- ¿Por qué está creando variables de tabla para el valor de rango y el nombre de la nueva columna?
- ¿Es la fórmula que especificó realmente lo que quiere?Agregar el número 2 al valor de otra columna no da ningún tipo de promedio móvil.¿Lo que realmente quiere hacer es crear un verdadero promedio móvil de la fila actual y los valores anteriores de las últimas 2 filas?