如何透過 JSL 保存具有特定名稱的預測公式列?各位,
我正在透過 JSL 腳本運行一些廣義線性模型。
如何將預測公式儲存到具有特定名稱的欄位?
我設法找到的所有內容(使用JMP腳本自動儲存預測公式? )是這樣的:
GLM = 擬合模型 (......);
GLM << 預測公式;
然而:
1)我可以選擇儲存預測公式的列的名稱嗎? JMP 會自動將其儲存到:“Pred Formula 'Target Variable'”
2)此功能是否已在任何地方記錄? 我在上面的論壇上找到了它,但在 JMP 的文檔中沒有找到
3)相同的語法是否適用於其他平台(例如分區)?
謝謝。
回覆:JSL 腳本:如何儲存預測公式?Ian 的回應涉及 #1 和 #3,而使用者 ms 則回答有關 JMP 腳本語言 (JSL) 文件的問題 #2。
@ian_jmp :
一般來說,「保存預測公式」在各個平台上是一致的。 已儲存列的名稱確實是固定的,但您可以使用以下內容重新命名它們:
dt <SPAN class="token operator">=</SPAN> <SPAN class="token function">Open</SPAN><SPAN class="token punctuation">(</SPAN><SPAN class="token string">"$SAMPLE_DATA/Big Class.jmp"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
cols <SPAN class="token operator">=</SPAN> dt <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> GetColumnNames<SPAN class="token punctuation">(</SPAN><SPAN class="token string">"String"</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token function">For</SPAN><SPAN class="token punctuation">(</SPAN>c<SPAN class="token operator">=</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> c<SPAN class="token operator"><=</SPAN><SPAN class="token function">NItems</SPAN><SPAN class="token punctuation">(</SPAN>cols<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">,</SPAN> c<SPAN class="token operator">++</SPAN><SPAN class="token punctuation">,</SPAN>
<SPAN class="token function">Column</SPAN><SPAN class="token punctuation">(</SPAN>dt<SPAN class="token punctuation">,</SPAN> cols<SPAN class="token punctuation">[</SPAN>c<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">)</SPAN> <SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN> SetName<SPAN class="token punctuation">(</SPAN><SPAN class="token string">"New "</SPAN><SPAN class="token operator">||</SPAN>cols<SPAN class="token punctuation">[</SPAN>c<SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>
在極少數情況下,在建立列之前和之後使用「取得列名稱」會很有幫助,比較兩個清單以推斷新列的名稱。
@多發性硬化症:
關於 JSL 的文檔,我認為腳本索引(幫助選單)是一個很棒的資源,包含隨時可用的範例。 是的, << 預測公式有沒有。
回覆:如何透過 JSL 保存具有特定名稱的預測公式列?繼續你的例子:
GLM = Fit Model (......);
pf = GLM << prediction formula;
pf << Set Name( "my name" );
是的,這種方法應該適用於任何建模平台。
回覆:JSL 腳本:如何儲存預測公式?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我從 :My Saved Prediction 中刪除了雙引號,現在一切正常。
感謝您向我指出腳本索引 - 非常有用!
回覆:JSL 腳本:如何儲存預測公式?空框可能表示目前資料表中不存在欄位:我儲存的預測(不應包含在雙引號內)。 檢查拼字。
關於 JSL 的文檔,我認為腳本索引(幫助選單)是一個很棒的資源,包含隨時可用的範例。 是的, << 預測公式有沒有。
回覆:JSL 腳本:如何儲存預測公式?嗯,聽起來很複雜。 我發現,如果我的目標變數稱為“My Target”,則該列將稱為“Pred Formula My Target”,所以我使用:
GLM = Fit Model (......);
GLM << prediction formula;
Column("Pred Formula My Target") << Set Name("New Column Name");
文件怎麼樣? JSL 文件中是否正確記錄了這一點? 我還沒找到它。 我是 JMP 腳本的新手,但第一印像是它是一種功能強大的語言,具有複雜的語法和糟糕的文檔,在某種程度上有點像 R - 但我希望商業軟體有更好的文檔!
最後,我建立另一列,將預測乘以其他值:
New Column("My new calculation", Numeric, Formula( :"My saved Prediction" * :another_field ));
其中「我保存的預測」名稱包含空格,而 another_field 則沒有。 公式計算正確,但如果我右鍵單擊標題並轉到公式,我會看到一個空框乘以 another_field。 這是 JMP 中的錯誤嗎? 我應該以不同的方式指定公式嗎?
謝謝。
回覆:JSL 腳本:如何儲存預測公式?一般來說,「保存預測公式」在各個平台上是一致的。 已儲存列的名稱確實是固定的,但您可以使用以下內容重新命名它們:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
cols = dt << GetColumnNames("String");
For(c=1, c<=NItems(cols), c++,
Column(dt, cols[c]) << SetName("New "||cols[c]);
);
在極少數情況下,在建立列之前和之後使用「取得列名稱」會很有幫助,比較兩個清單以推斷新列的名稱。