關於表格參考文獻的問題(來自拉塞爾)
這個問題出現在關於「回覆:2022Q1 實作課程 - 初學者」 - 我也希望其他人也加入討論,所以我將其放入討論論壇。
關於您今天展示的表引用的問題:如果您作為腳本的一部分順序處理多個表,您是否會無限地迭代表引用(dt1、dt2、dt3,...)或者是否有更聰明的解決方案?
背景:我經常操作表(連接、連接、分割等),有時會按順序打開、處理和關閉相當多的表,然後再轉到同一腳本中的下一個表,直到我獲得我想要的最終表。
回覆:關於表格參考文獻的問題(來自拉塞爾)@喬治謝謝你!
回覆:關於表格參考文獻的問題(來自拉塞爾)你好@雷塞爾,它不包含有關創建/編寫 SQL 的信息,而是包含有關透過 SQL 查詢或不同方式在 JMP 中部署查詢的更多資訊。 因此,我通常的方法是使用不同的工具來編寫普通 SQL(例如「從年齡 > 15 的 big_class 中選擇名稱」),然後在 JMP 中簡單地部署該腳本。 但您會看到幾個範例。
回覆:關於表格參考文獻的問題(來自拉塞爾)你好,是的,很多設定都被更改了,儘管我記不清是哪些設定了。 我的意思是,這由 SAS 技術支援、我們和我的 IT 支援負責。 我們花了大量的時間來嘗試解決這個問題。 但沒有什麼幫助。 (我最近開始變得有一定的數據素養。)
另外,我對透過腳本載入資料並操作表來取得資料沒有任何問題,儘管它確實顯得效率低下,因為我每次載入 100 000 行,刪除大部分行,並對下一個表重複類似的步驟。 我想查詢生成器可能會做同樣的工作,但在不同的介面上? 目前我可以存取我需要的數據,但是;取決於工作量;我可能會考慮將純 SQL 匯入到 JMP 中。 (不知道這是可能的。)
下面的連結包含有關建立用於 JMP 或在 JMP 中使用的 SQL 的資訊?
謝謝!
回覆:關於表格參考文獻的問題(來自拉塞爾)順便說一句,也許您想看看這個演示文稿,它都是關於使用 JMP 從資料庫獲取資料:
https://community.jmp.com/t5/Discovery-Summit-Europe-2021/Strategies-and-Examples-for-Data-Acquisition-From-Distributed/ta-p/349225
回覆:關於表格參考文獻的問題(來自拉塞爾)您是否嘗試更改查詢產生器首選項中的設定? 這可能會發生很大的變化,預設情況下,每次更改都會傳輸大量資料(資料庫的所有層級、預覽等)。
此外,一旦透過 GUI 進行查詢,您就可以將其轉換為自訂 SQL 以建立純 SQL。 然後將僅在資料庫中進行處理並且速度要快得多。
我最著名的方法總是在資料庫上做繁重的工作,但這總是取決於環境。 還有其他工具可讓您在資料庫中定義查詢,您可以在 JMP 中使用這些工具(例如 SQL 查詢產生器,具體取決於您的資料庫供應商)。
您也可以請您的 IT 人員(例如資料庫管理員)協助您處理定期需要的某些查詢,並將純 SQL 匯入到 JMP 中。
以正確的格式從資料庫中獲取資料至關重要,最後值得查看完整的過程。
回覆:關於表格參考文獻的問題(來自拉塞爾)我之前嘗試過使用查詢產生器。 它非常慢並且不斷崩潰。 於是我聯絡了SAS技術支持,但他們無法解決問題。 因此,我堅持在腳本中處理各個表,其中;鑑於查詢產生器的效能不佳;更加方便和有效率。 這可能是因為我正在加載的表有大約 100 000 多行 - 這至少是技術支援的結論。 唉,除了這些「巨大」的桌子之外,我幾乎沒有其他地方可以求助。
另外,我認為我需要緊急熟悉調試。 雖然我設法「爭論」了一些有用的程式碼行,但我沒有考慮架構、美學或;事實上;如何建立可調試的腳本。 不幸的是,它對我來說仍然是一個陌生的概念。
回覆:關於表格參考文獻的問題(來自拉塞爾)也可以在資料庫中進行表格操作(透過查詢產生器或本機 SQL 等進行查詢定義)。 這對於大型資料集是有利的,因為您可以避免流量並為伺服器帶來沉重的負載。 那你還需要在JMP中處理更少的表。
回覆:關於表格參考文獻的問題(來自拉塞爾)描述性句柄/引用名稱將在某些時候為您(或必須修改您的程式碼的其他人)提供協助。 當您可以使用 Show(dt_batchid_loc); 時,這也使偵錯列印變得更容易。例如查看已建立的表名稱。
此外,在建立表時使用輸出表(“表名稱”)可能很有用。 如果您(當您)必須調試程式碼時,這將對您有所幫助。 如果你不這樣做(我傾向於跳過這一點,它時不時地困擾著我),與“QC 的 Untitled 3041 摘要”相比,從“BatchID_with_Loc”之類的名稱中查看哪個表打開要容易得多,Loc」什麼的。
回覆:關於表格參考文獻的問題(來自拉塞爾)感謝您的回覆。 更多關於我正在工作的背景。
我透過 ODBC 從 Google Cloud Platform 實作載入表。 該表定期根據最新的製造數據進行更新。 例如,我加載的第一個表(我將其引用為dt )在單獨的欄位中具有批次 ID、不同 QC 參數的參數名稱、測量結果和測量單位。 我按 QC 參數名稱拆分它(並將輸出引用為dt2 , 關閉dt )。 然後,例如,我加載另一個表,該表交叉引用批次 ID 與製造地點(我將其引用為dt3 )。 之後我可以加入dt2和dt3 , 創造dt4依此類推,直到我有一個表格,其中包含我認為在繼續進行任何分析之前需要的所有資訊。 在某些腳本中,我正在處理接近 10 個表,所有表都引用為dt(n) 。 這是我目前的技術水平所允許的。
我有一個中期計劃,使用這樣的腳本來繪製控制圖。 目前,我僅以視覺方式評估趨勢,並將螢幕截圖或 html 匯出圖表發送給不同的利害關係人。
我從這次談話中學到的是使用更具描述性的表格參考。 這些也是所謂的句柄嗎?
回覆:關於表格參考文獻的問題(來自拉塞爾)我同意@馬丁德梅爾,這取決於文件存在的位置、處理它們的順序以及您想要對它們執行的操作。 JSL 在增強日誌之外還有許多可以提供幫助的內建功能。 例如,目錄中的文件為您提供目錄中所有文件的清單。 選擇文件允許您以互動方式從目錄中選擇一個或多個檔案。 雖然增強日誌可以很好地捕獲交互操作,但您仍然希望將硬編碼的表名稱引用替換為對錶的變數引用。 @馬丁德梅爾展示了其中一些使用dt = 打開(... 在大多數情況下,開啟檔案的 JSL 操作將傳回所建立的資料表的句柄。 當您向表發送來自以下操作的訊息時,也會建立資料表句柄:表格菜單。 例如,如果您要建立子集,則語法
subsetDT = dt << Subset(...
將使您捕獲對新建立的表的引用。 其他表操作以類似的方式工作。
回覆:關於表格參考文獻的問題(來自拉塞爾)你好@雷塞爾,
這實際上取決於你最終想做什麼。 如果您有 100 個數據表,您想要以相同的方式處理並在之後關閉,那麼循環(打開、處理、關閉每個表)可能會比打開所有 100 個表然後再處理它更好另一個。 原因之一是您沒有創建那麼多視窗句柄,這可能會在系統方面引發另一個問題。
一般來說,我會在表變數名稱中更具描述性,因此我可以更好地理解它是什麼(如果有意義的話)。 「dt」主要用於骯髒的駭客;)
您還可以獲得所有開啟的資料表,然後使用循環遍歷它們
Get Data Table List();
這可能是個明智之舉。
其他人對此有何看法?