引用 JSL 中的列我一直對教程和互聯網搜索中缺少多少關於 JSL 的基本信息感到震驚。 我不確定人們如何在不仔細研究大量不必要的附加信息的情況下學習這種語言的基礎知識,然後最終還是找不到所需的東西。 我想這就是為什麼討論論壇可以作為資源使用的原因。
我試圖簡單地引用給定 JSL 中的數據表的列。
dt = Open("filepath.jsl");
col = dt:"Column Title/Name";當我 Write() 時 col 什麼都沒有顯示,這意味著引用沒有引用。 該列清楚地填充了數據,它不是空的,我檢查了。 犯了愚蠢的錯誤,但我已經解決了。 說了這麼多,我也不知道怎麼了。 我認為這是 JSL 中非常基本的事情,但我不斷發現這些“JSL 中非常基本的事情”失敗了,並且在我可以處理我的代碼邏輯時花費寶貴的幾分鐘到幾小時的故障排除。 我傾向於向我的經理投訴我們對這種語言的使用,並建議可能切換到更合乎邏輯且設計良好的編程語言(顯然 JSL 用於統計用途,而不是真正用於編程邏輯),例如 Python。
<嘆氣>。 感謝您的任何幫助。
腳本回复:引用 JSL 中的列[注意:我之前寫過大部分內容@jthi回答並說了很多同樣的話。]
首先,如果你還沒有讀過(至少前幾章) JMP 腳本指南( PDF格式,如果願意)你真的應該。
JMP 是一種腳本語言,而不是一種編程語言。 它與 JMP 的用戶界面密切相關,旨在實現 JMP 任務的自動化。 嘗試以與您對 Python 或其他不控制用戶界面的語言相同的方式來思考它會導致挫敗感。
我試圖簡單地引用給定 JSL 中的數據表的列。
你的問題就是一個例子。 “引用列”的概念很複雜,因為“列”在不同的上下文中可能意味著不同的事物(例如,平台調用、操作列的屬性、列公式)。
那麼,您在示例中包含什麼“col”? 列中包含的數據? 該列的特定行的值?
或者,問的不同? 將“col”設置為您希望包含的任何內容後,您想在哪裡使用它? 在平台調用中(例如,Distribution(Y(col)))? 或者別的地方?
回复:引用 JSL 中的列如果我沒記錯的話,使用 dt:"colname"(與使用 As Column() 相同)將使您直接訪問數據表中名為“colname”的列的當前 Row() 的當前值,並引用 dt。 要獲得對列的引用,您可以使用 Column(dt, "colname") 作為@蒂埃里_S說。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("Column Title/Name",
Character,
"Nominal",
Set Values({"a1", "b2", "c3", "d4", ""})
)
);
For each row(dt,
col = dt:"Column Title/Name";
Show(col);
);
Row() = 1;
col = AsColumn(dt, "Column Title/Name");
Show(col);
col = Column(dt, "Column Title/Name");
Show(col);我絕對不是說 JSL 文檔是最好的,但它確實有相當多的材料(以及很棒的社區和電子郵件支持)。 對於初學者來說,這些是很好的來源:
JMP15 - 腳本指南
JMP 幫助
直接來自 JMP 的腳本索引
如果 JMP 幫助或腳本索引中缺少或不清楚的地方,我相當肯定 JMP 會很樂意改進它們。
@Jeff_Perkinson
回复:引用 JSL 中的列正確的語法是: col = Column (dt, "Name")