開始於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技術支持如果您有任何疑問或疑慮!