establecer el tipo de datos para la nueva columnaHola, ¿cómo puedo configurar condicional y programáticamente un tipo de datos para una nueva columna? Tengo una solución alternativa que cubre numérico / carácter, y podría extenderse para otros tipos, pero estoy tratando de que funcione el siguiente método (marcado 'no funciona'). El registro muestra que no reconoce la variable de tipo. He intentado algunas cosas como parse () pero hasta ahora no he tenido éxito.
Names Default To Here( 1 );
dt = open( "$SAMPLE_DATA\Big Class.jmp");
colType = column(dtData,"Name") << get data type;
// doesn't work, error on colType
dt << add multiple columns("New Column", 1, After("Name"), colType);
// works
dt << add multiple columns("New Column", 1, After("Name"), Numeric);
if(colType == "Character", column(dt, "New Column") << data type ("Character"));Re: establecer tipo de datos para nueva columnaLa opción Agregar varias columnas no parece permitir el análisis antes de la ejecución real de la instrucción. Por lo tanto, lo que se presenta como Agregar múltiples columnas debe desarrollarse completamente antes de entregarlo a JMP para su ejecución. Aquí hay un par de formas de hacerlo
Names Default To Here( 1 );
dt = Current Data Table();
coltype = "character";
Eval(
Parse(
Eval Insert(
"dt << add multiple columns(\!"New Column\!", 1, After(\!"Name\!"), ^colType^)"
)
)
);
// or
Eval(
Substitute(
Expr(
dt << add multiple columns(
"New Column",
1,
After( "Name" ),
__type__
)
),
Expr( __type__ ), colType));
Re: establecer tipo de datos para nueva columnaJim lo clavó; Aquí hay algunas formas más de construir esa declaración en caso de que alguien resuene mejor con su código:
Inserte una expresión en otra usando Eval Insert, Eval Expr, Parse y Substitute