开始于JMP 16 ,JMP不再推广Name()解析器指令,该指令通常用于引用破坏典型语法规则的变量名称名字在JMP中。
此更改是由于许多客户抱怨Name()解析器指令的语法,用例和功能令人困惑。
反而, JMP将提倡使用一种新的语法形式,其名称以字符串形式引用,后跟字符“ n”。
以下是一些带有非法字符的变量名和列名的示例,以及与新语法相比如何用旧的Name()解析器指令引用它们的示例:
老的:
Name( "taxable income( 2011 )" ) = 456000;
tax = .25;
Print( tax * Name( "taxable income( 2011 )") );
//114000
新的:
"taxable income( 2011 )"n = 456000;
tax = .25;
Print( tax * "taxable income( 2011 )"n) ;
//114000
老的:
dt = Open("$SAMPLE_DATA/Body Fat.jmp");
dt:Name("Age(years)") << Set Modeling Type(Ordinal);
新的:
dt = Open("$SAMPLE_DATA/Body Fat.jmp");
dt:"Age(years)"n << Set Modeling Type(Ordinal);
为了澄清任何混乱,此新语法是在几个版本之前添加到JMP的,并且,如果您愿意,仍可以暂时使用经典的Name()解析器指令。 但是,由于不建议使用Name(),它将最终在将来的JMP版本中被删除,不再被认可。 在JMP 16中,记录了新语法,并在JMP生成的脚本中使用了新语法。
请记住,在大多数情况下,使用Column()和As Column()之类的函数来将数据表列作为字符串引用可能会更容易,但是“ colName” n语法对于中断名称的变量名是一个不错的选择典型的语法规则。
使用Column()和As Column()引用“ Age(years)”的示例:
dt = Open("$SAMPLE_DATA/Body Fat.jmp");
//Change the modeling type of "Age(years)" column
Column(dt,"Age(years)") << Set Modeling Type(Ordinal);
//Add 10 years to each age
For Each Row(dt,
age10 = As Column("Age(years)") + 10;
Show(age10);
);
请联系JMP技术支持如果您有任何疑问或疑虑!