Come fornire l'argomento al delimitatore nelle colonne combinate ()?Quanto segue non funziona
Names Default To Here (1);
// Combine columns
dm = ".0";
Data Table( "myTable" ) << Combine Columns(
columns( :Col1, :Col2 ),
Column Name( "ID" ),
Delimiter(dm)
//Delimiter ("dm")
);Ma scrivendo l'argomento a Delimiter direttamente come
Delimiter(".0")lavori. Come fornire argomenti al delimitatore dall'esterno?
Automazione e scriptingRi: Come fornire l'argomento al delimitatore nelle colonne combinate ()?Ciò accade perché JMP non valuta argomenti in argomenti nei messaggi.
È possibile utilizzare Substitute per sostituire il valore di 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
)
);Ri: Come fornire l'argomento al delimitatore nelle colonne combinate ()?@Jeff_Perkinson Grazie. In questo caso, come eseguire lo script, se ho una condizione sul delimitatore - ad esempio delimitatore = ".0" se: età <13 e delimitatore = ".1", altrimenti.
Ri: Come fornire l'argomento al delimitatore nelle colonne combinate ()?IL Il messaggio Combina colonne sta facendo lo stesso di Cols > Utilità > Combina colonne .
Combina colonne non supporta alcuna condizionalizzazione.
Invece, creerei un file nuova colonna con una formula per concatenare le altre colonne come desideri.
Ecco come apparirebbe la formula nell'editor di formule.

Ed ecco il JSL per 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
)
);