¿Cómo proporcionar un argumento al delimitador en columnas combinadas ()?Lo siguiente no funciona
Names Default To Here (1);
// Combine columns
dm = ".0";
Data Table( "myTable" ) << Combine Columns(
columns( :Col1, :Col2 ),
Column Name( "ID" ),
Delimiter(dm)
//Delimiter ("dm")
);Pero escribiendo el argumento a Delimiter directamente como
Delimiter(".0")obras. ¿Cómo proporcionar argumentos al delimitador desde el exterior?
Automatización y secuencias de comandosRe: ¿Cómo proporcionar un argumento al delimitador en columnas combinadas ()?Esto sucede porque JMP no evalúa argumentos a argumentos en los mensajes.
Puede usar Substituir para sustituir el valor de dm.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// Combine columns
dm = ":";
Eval(
Substitute(
Expr(
dt << Combine Columns(
columns( :name, :age ),
Column Name( "ID" ),
Delimiter( d )
)
),
Expr( d ), dm
)
);Re: ¿Cómo proporcionar un argumento al delimitador en columnas combinadas ()?@Jeff_Perkinson Gracias. En este caso, cómo escribir una secuencia de comandos, si tengo una condición en el delimitador, por ejemplo, delimitador = ".0" si: edad <13 y delimitador = ".1", de lo contrario.
Re: ¿Cómo proporcionar un argumento al delimitador en columnas combinadas ()?El El mensaje Combinar columnas está haciendo lo mismo que Columnas > Utilidades > Combinar columnas .
Combine Columns no admite ninguna condicionalidad.
En su lugar, crearía un nueva columna con una fórmula para concatenar sus otras columnas como desee.
Así es como se vería la fórmula en el Editor de fórmulas.

Y aquí está el JSL para crearlo.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// Combine columns
dm1 = ":";
dm2 = "-";
Eval(
Substitute(
Expr(
dt << New Column( "ID",
Character,
"Nominal",
Formula( :name || If( :age <= 13, d1, d2 ) || Char( :age ) ),
)
),
Expr( d1 ), dm1,
Expr( d2 ), dm2
)
);