在 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 會很樂意對其進行改進。
@傑夫·珀金森
回覆:在 JSL 中引用列正確的語法是:col = Column(dt,“名稱”)