如何使用 JSL 將值放入資料表儲存格中<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我對 JSL 比較陌生,但我一直在編寫幾個腳本來處理生成表格和圖表的過程,以測試我們正在生產的軟體產品是否正確報告結果。 我現在遇到的問題之一是我必須建立一個圖表,顯示報告的時間(簡單),但也反映從報告時間箱到未來時間箱的殘差。
例如,我需要製作一個等待時間圖表,其中 x 軸從午夜運行到午夜,並具有離散的 15 分鐘時間段。 我有一個報告等待時間的資料集,並對等待開始的時間進行分類。 為簡單起見,我挑出了一行,其中報告了在上午 9:05 進入某個位置的客服人員的等待時間為 90 分鐘。 該等待時間的時間段為上午 9:00,報告 90 分鐘等待時間並顯示在上午 9:00 時間段的圖表中。 在傳統圖表中,所有其他時間都為零,因為排除了所有其他數據,但實際上,該圖表應顯示該代理在多個時間段內的等待時間,直到等待時間為零;實際上,如果下一個進入該位置的人到達當前代理仍在排隊的任何時間段內等待的代理後面的位置,那麼他們可以預期等待的最短時間是多少。
因此,我需要建立一個所有時間的矩陣,時間倉中的值為零,除了下面列出的那些。
時間倉等待時間
上午 9:00 90 分鐘
上午 9:15 80 分鐘
上午 9:30 65 分鐘
上午 9:45 50 分鐘
上午 10:00 35 分鐘
上午 10:15 20 分鐘
上午 10:30 5 分鐘
我已經有一個腳本,可以為數據表最後一列之後的每個時間箱生成列,並且我發現由於涉及的條件數量以及非零等待時間發生的位置、時間和頻率這一事實如果可行的話,使用列公式的矩陣的任何給定行都會過於複雜。 因此,我希望有某種方法可以填充各個單元格,以便我使用嵌套循環來遍歷矩陣中每列的每一行,並確定應在其中放置什麼等待時間值。
我更喜歡的另一個選擇是建立一個新的資料表,其中包含子記錄來處理溢出資料。 例如,資料表的子集是以下四行:
| 代理 ID | 地點 | 天 | 入場時間 | 退出時間 | 最短運輸時間 | 等待時間 | 時間倉 |
|---|
184 | 出口隊列 | 1 | 上午 7:10:24 | 上午 7:10:24 | 0 | 0 | 7:00 AM |
| 185 | 國際滑雪聯合會入口 | 1 | 上午 6:41:38 | 上午 6:41:38 | 0 | 0 | 上午 6:30 |
| 185 | 訪客隊列 | 1 | 上午 6:41:38 | 上午 7:00:51 | 0 | 第1153章 | 上午 6:30 |
| 185 | 行李領取處 | 1 | 上午 7:01:59 | 上午 7:01:59 | 0 | 0 | 7:00 AM |
該腳本將掃描原始表中的每一行並將其複製到新資料表中。 在上例的第三行中,總等待時間 1153 秒大於在 6:30 AM 時間 bin 中等待所花費的時間: 6:45 AM 時間 bin - 6:41:38 AM 佇列條目時間 - 0 秒佇列傳輸時間= 上午6:30 時段使用的202 秒等待時間。 因此,新資料表將新增子行,導致上面顯示的資料表區域如下所示:
| 代理 ID | 地點 | 天 | 入場時間 | 退出時間 | 最短運輸時間 | 等待時間 | 時間倉 |
|---|
| 184 | 出口隊列 | 1 | 上午 7:10:24 | 上午 7:10:24 | 0 | 0 | 7:00 AM |
| 185 | 國際滑雪聯合會入口 | 1 | 上午 6:41:38 | 上午 6:41:38 | 0 | 0 | 上午 6:30 |
| 185 | 訪客隊列 | 1 | 上午 6:41:38 | 上午 7:00:51 | 0 | 第1153章 | 上午 6:30 |
| 185 | 訪客隊列 | 1 | 上午 6:41:38 | 上午 7:00:51 | 0 | 第951章 | 上午 6:45 |
| 185 | 訪客隊列 | 1 | 上午 6:41:38 | 上午 7:00:51 | 0 | 51 | 7:00 AM |
| 185 | 行李領取處 | 1 | 上午 7:01:59 | 上午 7:01:59 | 0 | 0 | 7:00 AM |
斜體行是訪客佇列中客服人員 185 的子行,顯示客服人員 185 在訪客佇列中不再等待之前的剩餘等待時間。 然後,我可以使用此表產生我需要的圖表,因為子記錄將提供所需的附加資料。
如果有人可以為這兩種解決方案提供一種方法,我們將不勝感激。
回覆:如何使用 JSL 將值放入資料表儲存格中謝謝羅恩。
很高興知道。 這些行似乎是無關緊要的,但由於JSL 是一種腳本語言,而且我剛開始編寫自己的腳本— 實際上我已經使用JMP 的腳本功能幾年了,但它主要是將腳本從平台保存到數據表並在需要時進行一些調整 - 我不確定它是否或與添加行有關。 起初,我瘋狂地猜測這可能與預填行有關,我意識到添加行正在以一種未記錄的方式執行此操作。
說到這裡,根據 JMP 腳本指南,新增行(數位)新增指定的數位行,但內部循環會根據事件持續時間一次新增一行,並複製來源行中的列值,包含在羅維,進入新行。 感謝您發現了這種未記錄的功能。 這是我陷入困境的原因之一,因為我有豐富的程式設計經驗,只要文法有很好的文件記錄,通常就能找出新語言。 我在 JMP 文件中沒有發現任何內容提到「新增行」函數可以接受包含特定行的列值清單的變數作為參數。
回覆:如何使用 JSL 將值放入資料表儲存格中嗨,醫學博士,
我很高興我的腳本對你有用。當我寫它時,加載項不可用。
關於 z;我現在剛剛查了一下,沒有必要。如果沒有它,循環應該可以正常工作。 我曾經認為你必須在 for 迴圈中有 z 才能計算它經歷的次數。
在測試腳本時,它透過始終可用的循環數來幫助我控制其操作。
最好的,
羅恩.
回覆:如何使用 JSL 將值放入資料表儲存格中問題。
在根據事件持續時間建立新行的程式碼區塊中,
為了(我= 1 ,我<=第N行,我++,
羅維= dt <<獲得行(我) ;
為了( z = 1 , z <= ( :姓名( 「活動持續時間」 )[我] - 1 ) , z ++,
z ;
dt <<新增行(羅維) ;
dt <<運行公式;
) ;
) ;
那條線是什麼z ;做?
回覆:如何使用 JSL 將值放入資料表儲存格中羅恩,
謝謝(你的)資訊。 該插件對我不起作用,但檢查氣泡圖問題的程式碼解決了我遇到的問題。 我花了一整天的時間來構建我需要的腳本,但是您提供的用於添加子行以填補數據空白的程式碼幫助我完成了在相當長一段時間內將陷入僵局的任務。
回覆:如何使用 JSL 將值放入資料表儲存格中嗨,醫學博士,
我不確定我完全理解你的問題,但嘗試這兩個連結:
1)按頻率擴充列插件
2)氣泡圖 - 不等的時間間隔