设置新列的数据类型嗨,我如何有条件地以编程方式为新列设置数据类型? 我有一个涵盖数字/字符的解决方法,它可以扩展到其他类型,但我试图让下面的方法(标记为“不工作”)工作。 日志显示它无法识别类型变量。 我尝试了一些类似 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"));回复:为新列设置数据类型吉姆成功了;如果任何人与您的代码产生更好的共鸣,这里还有一些其他方法可以构建该语句:
使用 Eval Insert、Eval Expr、Parse 和 Substitute 将一个表达式插入另一个表达式
回复:为新列设置数据类型Add Multiple Columns 似乎不允许在实际执行语句之前进行解析。因此,在将其提供给 JMP 执行之前,需要完全充实显示为“添加多列”的内容。这里有几种方法可以做到这一点
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));