開始於JMP 16 ,JMP 停止推廣通常用於引用違反典型語法規則的變量名稱的 Name() 解析器指令名稱在 JMP 中。
此更改是為了響應許多客戶的投訴,即 Name() 解析器指令的語法、用例和功能令人困惑。
反而,聯合管理計劃將提倡使用新的語法形式,將名稱引用為字符串,後跟字符“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() 引用“年齡(年)”的示例:
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 技術支持如果您有任何問題或疑慮!