需要高級 JSL 幫助 - 從日誌中讀取數據你好
需要協助,目前藉助 GPT4.0 建立了一個 JSL 腳本,但該腳本無法運作。
腳本目的:進行單一日誌的分析並將資料從中提取到 csv 中。
在第一輪中,我將重點放在僅包含分類分析的期刊上。
日誌可能包含一個或多個分類變數的分類表,後面跟著一個共享圖表和一個頻率圖表。我只對從表中提取數據感興趣。我的實際實作涉及 5 個類別的多項式類,然而在範例日誌和腳本中,為了簡單起見,我將其減少到 2 個類別(二進位)。
對於給定的參數值,分類表包含 3 行:計數、百分比和 pvalue。我只對提取百分比值感興趣,當且僅當 pvalue <= 0.05
我需要將輸出儲存為 csv w/格式:
期刊名稱、參數名稱、參數值1、百分比類別0、百分比類別1
期刊名稱、參數名稱、參數值2、百分比類別0、百分比類別1
該腳本應該了解該期刊中存在的分類表的數量,然後提取所有表格資訊(僅適用於 pvalues<= 0.05)
對於任何時間有限來研究這個問題的人來說;
腳本運行時沒有錯誤,但沒有按預期提取資料。
主要問題出現在腳本的結尾(第 155-175 行)。 .根據Type(journal)建立兩個函數進行處理。我認為它正確獲取了類型,但無法正確連接到函數
注意:我的第二階段將包含類似的意圖,但包含包含邏輯迴歸結果的日誌
我還沒有發布過這個。我寧願先解決這個問題。
附件中您將找到來自 JMP 樣本資料庫的《飛機事故》日誌和適合嘗試 2 個等級樣本腳本。
非常感謝
開齋節
自動化和腳本分享和交流成果視窗回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據是否有特定原因要從日記帳中提取這些內容而不是從用於建立日記帳的 JMP 報告中提取這些內容?
回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據是的,期刊尺寸明顯小得多,以便與我的客戶進行溝通。我的期刊格式有兩種類型,它們要么包含分類參數分析,要么包含連續參數分析。我希望從期刊中提取數據並不比從報告中提取數據那麼困難。
回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據從報告中你基本上只需保存表格並幾乎完成(根據最終結果,可能需要進行一些清理)

Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Aircraft Incidents.jmp");
fg = dt << Fit Group(
cg1 = Categorical(
ChiSquare Test Choices("Pearson Only"),
X(:Broad Phase of Flight),
Responses(:Fatal),
Cell Chisq(1),
Share Chart(1),
Frequency Chart(1),
Legend(0)
),
Categorical(
ChiSquare Test Choices("Pearson Only"),
X(:Weather Condition),
Responses(:Fatal),
Cell Chisq(1),
Share Chart(1),
Frequency Chart(1),
Legend(0)
),
<<{Arrange in Rows(2)}
);
dt_cont = cg1 << Save Contingency Table();回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據我正在進行大規模分析,並將我的腳本過程分為多個階段。我確實已經產生了很多歷史分析結果,我並沒有尋找解決方案(針對當前問題)來分析然後嘗試創建摘要報告(如果可能的話) - 只是因為重新運行它們不切實際。相反,我喜歡將這個摘要腳本(從日誌中提取資料)解耦,這樣就可以解釋其工作原理。
我的日記包含多份報告,我有多本日記。總的來說,這是大量的數據。日記路線最適合我的工作。我需要透過腳本來完成此操作,否則就不切實際。目前,我只想要一本分類表日誌。一旦我理解了我當前的錯誤並有一個針對單一期刊的工作腳本,我就應該能夠擴展它以涵蓋所有分類類型的期刊。我未來的另一個階段是類似地需要第二種期刊類型,每個期刊包含多個多項邏輯迴歸。
腳本中存在錯誤,因為它沒有將日誌傳達給子功能。我正在思考並希望這個錯誤仍然是一個簡單的錯誤。我也檢查過腳本索引,看看是否有其他東西可以幫助,但沒有成功。
回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據我不確定您的腳本在做什麼,因為您沒有處理表格框(這很容易)。函數定義也不正確,這很可能解釋了您的函數沒有按照您期望的方式執行。
我很可能甚至不會費心去擺弄列聯表使用的顯示框,而是從文字中解析它
Names Default To Here(1);
j = Current Journal();
agb = j["Fatal By Broad Phase of Flight",AlignmentGridBox(1)];
txt = agb << get text;
lines = Words(txt, "\!N");
Remove From(lines, 1, 3);
res = {{}};
For Each({line}, lines,
res_line = {};
vals = Words(line, "}\!t");
Insert Into(res_line, Remove From(vals, 1)); // param name?
Insert Into(res_line, Remove From(vals, 1)); // param value?
Insert Into(res_line, Words(Remove From(vals, 1)[1], ",")); // class1
Insert Into(res_line, Words(Remove From(vals, 1)[1], ",")); // class2
Insert Into(res, Concat items(res_line, "\!t"));
);
dt = Open(Char To Blob(Concat Items(res, "\!N")), "text");回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據嗨,Jarmo,
首先感謝您的支持/幫助。我想花一些時間將您的方法應用到我的腳本中。我已經能夠適應它,但是我確實還有一些問題。
我的後續問題:
回想一下,我的階段 1 是純分類表的日誌,表/日誌的數量是可變的。
1. 如何取得給定期刊的分類表數量(例如,上述情況為 2)
2. 如何取得此類分類表的名稱(例如「按飛行大致階段導致的致命事故」和「按天氣條件導致的致命事故」)
3. 我的第二階段將是多項邏輯迴歸的純粹集合。我從您的支持中得出的腳本並未直接執行,但在執行之前我確實需要花一些時間。我還可以準備一些樣本資料。因此,讓我在此放置一個佔位符。
4. 進入更高階腳本編寫的最快方法是什麼?例如,如果我沒有記錯的話,在我的例子中,屬性框揭示了一些可能相關的潛在 JMP 函數名稱。我已經多次使用腳本索引,但對我來說效果並不好。我還記得舊版本中曾經有一個腳本文檔,但我不確定它的最新版本在哪裡。
再次感謝。
回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據1. 使用 XPath 是一種選擇
obs = (j << XPath("//OutlineBox[contains(text(), 'Fatal By')]"));
2. 當你有大綱框引用時,你可以使用 << 取得標題
obs << get title;
4. 利用JMP 幫助中的腳本索引、腳本指南(JMP 幫助也有 JSL 語法參考)。另外,目前您不應該依賴 LLM 來進行 JSL,因為它們非常不可靠(正如您從腳本中看到的那樣)。
回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據我嘗試了範例資料中的 obj 語法,但是沒有起作用。
名稱未解析:存取或評估「obj」時出現 obj,obj/*###*/
我的所有表在表名中都有一個通用字串,因此我可以搜尋該通用字串(例如上例中的“Fatal by”)。
我假設當它工作時,obj 將是一個列表,所以在這種情況下我可能不需要知道日誌中的表數
對於法學碩士 (LLM),我同意你的看法。一開始,腳本結構很快就給出,但發現許多區域不起作用。更令人沮喪的是,他們有時真的很愚蠢......它會提供一個代碼,我會對其提供反饋,甚至在某些情況下告訴它進行具體的更正......下一輪,LLM 會提供相同的錯誤解決方案。我想我甚至連續看過兩次以上的這種情況。
但很多時候,對於比較簡單的東西,它可以讓我快速啟動,所以我當然會繼續謹慎使用。
回覆:需要高級 JSL 方面的幫助 - 從日誌中讀取數據使用 JSL,您應該在 JMP 中以互動方式啟動並讓 JMP 建立腳本。如果這還不夠,並且您希望編寫更多腳本,請簡要瀏覽腳本指南。然後利用腳本索引作為您的主要資源(它也有指向腳本指南/ JSL 語法參考的連結)並時不時地諮詢 LLM,但要明白 LLM 通常對 JSL 非常錯誤。