如何有条件地为 JSL 中的新列设置数据类型?您好,如何有条件地以编程方式为新列设置数据类型? 我有一个涵盖数字/字符的解决方法,它可以扩展到其他类型,但我正在尝试让下面的方法(标记为“不工作”)工作。 日志显示它无法识别类型变量。 我已经尝试了一些类似 parse() 的方法,但到目前为止都没有成功。
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"));
谢谢,
麦克风
回复:如何有条件地为 JSL 中的新列设置数据类型?谢谢!
回复:如何有条件地为 JSL 中的新列设置数据类型?感谢您报告此问题。 原始帖子揭示了 JSL 中的一个缺陷。 提供了一些聪明的解决方案,这是很好的解决方法。 我现在可以报告说,在 JMP 14 中,原始代码(在示例脚本中标记为“不起作用”)现在可以按预期正常工作。
回复:如何有条件地为 JSL 中的新列设置数据类型?谢谢!回复:如何有条件地为 JSL 中的新列设置数据类型?你是对的。 这通常是填充表达式的最佳方式
回复:如何有条件地为 JSL 中的新列设置数据类型?谢谢吉姆。 这很好用。 eval(substitute(expr(...))) 总是让我困惑何时使用它,因为它似乎是一种将变量获取到需要去的地方的过于复杂的方法。 如果我试图将变量放入这样的表达式中,那么可以说它总是需要的吗?
谢谢,
麦克风
回复:如何有条件地为 JSL 中的新列设置数据类型?这将为您解决问题
Eval(
Substitute(
Expr(
dt << add multiple columns( "New Column", 1, After( "Name" ), __coltype__ )
),
Expr( __colType__ ), Parse( coltype )
)
)