如何在组合列()中为定界符提供参数?以下不起作用
Names Default To Here (1);
// Combine columns
dm = ".0";
Data Table( "myTable" ) << Combine Columns(
columns( :Col1, :Col2 ),
Column Name( "ID" ),
Delimiter(dm)
//Delimiter ("dm")
);但是直接将参数写入 Delimiter 为
Delimiter(".0")作品。如何从外部为定界符提供参数?
自动化和脚本回复:如何在组合列()中为定界符提供参数?发生这种情况是因为 JMP 不评估消息中参数的参数。
您可以使用 Substitute 来替换 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
)
);回复:如何在组合列()中为定界符提供参数?@Jeff_Perkinson谢谢。 在这种情况下,如何编写脚本,如果我对分隔符有条件 - 例如 delimiter = ".0" if : age <13 and delimiter = ".1", 否则。
回复:如何在组合列()中为定界符提供参数?这Combine Columns 消息与列 > 实用工具 > 合并列.
合并列不支持任何条件化。
相反,我会创建一个带有公式的新列根据需要连接其他列。
这是公式在公式编辑器中的样子。

这是创建它的 JSL。
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
)
);