揚聲器 | 成績單 |
| 米婭·斯蒂芬斯 | 歡迎來到 JMP 探索峰會。 我是 Mia Stephens,是 JMP 產品經理。 系統工程師 Jordan Hiller 也加入了我的行列。 今天我們將討論自動化數據管理工作流程。 |
| 這是摘要,僅供參考;我不會談論它。 |
| 我們將把這個演講分成兩部分。 我將開始討論分析工作流程 |
| 並談論數據創建,即數據管理的含義。 我們將了解如何識別數據中潛在的數據質量問題。 |
| 然後我會把它交給喬丹,喬丹將談論可重複性的必要性。 |
| 他將與我們分享一份數據管理備忘單,並展示如何...如何在 JMP 中管理數據。 |
| 動作記錄器和增強日誌。 |
| 那麼我們來談談分析工作流程。 |
| 這一切都始於我們試圖解決的一些業務問題。 |
| 當然,我們需要編譯數據,您可以編譯來自多個不同來源的數據並將數據放入 JMP 中。 |
| 最後,我們需要能夠分享結果,與他人交流我們的發現。 有時這可能是一個一次性項目, |
| 但我們經常會重複進行分析。 所以本次演講要解決的一個核心問題是,你能輕鬆重現你的結果嗎? |
| 其他人可以重現你的結果嗎? 或者,如果您有新數據或者更新了數據,您是否可以輕鬆地重複您的分析,特別是對這些新數據的數據管理步驟? 這就是我們在本次演講中要討論的內容。 |
| 但數據管理到底是什麼? |
| 為什麼我們需要關心它? |
| 嗯,數據管理就是確保我們的數據對於推動分析發現有用。 從根本上來說,我們需要能夠解決我們想要解決的問題。 |
| 它主要涉及數據組織、數據結構以及數據清理。 |
| 如果您考慮一下我們可能會遇到的數據問題,它們往往分為四大類 |
| 您的格式可能不正確,數據可能不完整、數據丟失或者數據髒亂或混亂。 |
| 為了幫助我們討論這些問題,我們將藉用 STIPS 的一些內容。 如果您不熟悉 STIPS,STIPS 是我們的免費課程:工業問題解決的統計思維。 |
| 這是一門基於七個獨立模塊的課程,第二個模塊是探索性數據分析。 |
| 由於探索性數據分析和數據管理的迭代和交互性質,該模型的最後一課......在本模塊中稱為分析數據準備,因此我們在整個演講中大量借鑒了本課。 |
| 讓我們逐一分解這些問題。 格式不正確。 格式不正確是什麼意思? 好吧,這是當您的數據格式錯誤或分析格式錯誤時。 這可以應用於整個數據表。 因此,例如,您可能有 |
| 稱為...數據存儲在單獨的列中,但實際上您需要將數據存儲在一列中。 |
| 或者,您的數據可能位於單獨的數據表中,並且您需要連接、更新或將數據表連接在一起。 |
| 它可以與單個變量相關。 例如,您可能有錯誤的建模類型。 或者,您的數據表中可能有日期,因此您可能有日期列,並且它們可能未格式化為天,因此分析可能無法識別這些是......這是日期數據。 |
| 格式也可以是裝飾性的。 因此,例如,如果您正在處理一個大型數據表,您可能有很多列...... |
| 您可能有一些名稱...您可能想要更改的無法真正識別的列名稱。 |
| 您可能有很多列,您可能希望將它們組合在一起以使其更易於管理。 |
| 您的響應列可能位於數據表的最後,您可能希望將其向上移動。 因此,表面問題不一定會妨礙您的分析,但如果您可以解決其中一些問題,則可以使您的分析變得更容易一些。 |
| 數據不完整是指缺乏數據。 這可能是由於缺乏重要變量的數據。 例如,您可能沒有捕獲對於解決問題至關重要的變量數據。 也可能是缺乏變量組合的數據。 |
| 例如,您可能沒有足夠的信息來估計交互。 |
| 或者您可能有一個您感興趣的不平衡目標變量,因此您可能正在研究諸如缺陷之類的東西。 這可能只是您觀察結果的 5% |
| 用於缺陷,您可能沒有足夠的數據,因為您知道,您可能只有很小的數據子集 |
| 存在缺陷的地方。 您可能沒有足夠的數據來了解缺陷的潛在原因。 您也可能沒有足夠大的樣本量,因此您只是沒有足夠的數據來進行良好的估計。 |
| 缺失數據是指缺少變量值,這可以採取多種不同的形式。 |
| 如果您丟失了數據並且數據...丟失不是隨機的,這可能會導致嚴重的問題,因此您的估計可能會有偏差。 |
| 如果您完全隨機丟失數據,那麼如果您只丟失了一些觀察結果,這可能不是問題,但如果您丟失了大量數據,那麼這可能會出現問題。 |
| 當您的觀察或變量出現問題時,就會出現髒亂差的數據。 所以你的價值觀可能不正確,價值觀根本就是錯誤的。 |
| 你可能會遇到不一致的情況。 例如,當人們以不同的方式輸入內容時,您可能會出現拼寫錯誤或印刷錯誤。 |
| 這些值可能不准確。 例如,您的測量系統可能存在問題。 可能存在錯誤,可能存在拼寫錯誤,數據可能已過時。 |
| 過時數據是指您擁有的數據例如不再使用的設施或機器。 |
| 數據可能已經過時,因此您的數據可能可以追溯到兩三年前,但該過程可能在該時間範圍內的某個地方發生了變化, |
| 這意味著這些歷史數據可能與當前的流程無關。 您的數據可能會受到審查,或者可能會被截斷。 |
| 您可以擁有冗餘列,這些列基本上包含相同的信息。 或者你可能有重複的觀察結果。 |
| 因此,骯髒或混亂的數據可以採取多種不同的形式。 |
| 那麼如何識別潛在問題呢? |
| 嗯,一個好的起點是探索您的數據,事實上,識別問題會引導您進行數據探索,然後進行分析。 當您開始探索數據時,您開始識別可能導致分析出現問題的因素。 |
| 因此,一個很好的起點是掃描數據表以查找明顯的問題。 |
| 因此,我們將在本次演講的其餘部分中使用一個名為“組件”的示例,這是 STIPS 課程中的一個示例 |
| 一家公司正在生產小型元件,並且他們有產量問題。 所以收集到的數據,有369批次。 我們已經捕獲了 15 個特徵,我們希望利用這些數據來幫助我們了解低產量的潛在根本原因。 |
| 因此,如果我們開始查看數據表本身,就會發現一些關於我們可能存在哪些類型的數據質量問題的線索。 這是一個非常好的起點,(這是在 JMP 15 中添加的) |
| 是標題圖。 我喜歡標題圖。 他們的作用是,如果你有一個連續變量,可以顯示直方圖,這樣你就可以看到分佈的中心、形狀和分佈。 |
| 它們還向您顯示值的範圍。 如果您有分類數據,它會向您顯示一個條形圖,其中包含最多的條形圖的值。 讓我們來看看其中的一些。 我將從批號開始。 所以批號是顯示直方圖的,而且形狀實際上是均勻的。 |
| 批次編號可能是標識符,因此我立即可以看到這些數據可能編碼不正確。 |
| 我可以看到這個分佈是高度傾斜的,我還可以看到最低值為-6,這可能會讓我提出關於負廢品數量的可行性的問題。 |
| 過程是另外一個過程。 我基本上有兩個條形圖,它實際上向我顯示了一個只有兩個值的直方圖。 |
| 當我查看這些柱形圖、這些標題圖時,我可以查看柱形面板, |
| 很容易看出,例如,批次號、零件號和過程都被編碼為連續的。 當您將數據導入 JMP 時,如果 JMP 看到數字,它會自動將這些列編碼為數字連續。 所以這些是我們可能想要改變的事情。 |
| 我們還可以看看數據本身。 因此,例如,當我查看濕度時(當您查看數據時,上下文非常重要),我們將濕度視為連續數據。 |
| 但我這裡有幾個字段不適用。 |
| 如果您有字母數字數據,如果數字列中有文本數據,則當您將數據拉入 JMP 時,該列將被編碼為名義數據。 所以這是我們立即需要解決的問題。 |
| 我還可以瀏覽其他欄目。 例如,供應商,我發現我缺少一些價值觀。 當您將數據拉入 JMP 時,如果有 |
| 分類數據的空單元格,我們知道我們缺少值。 我可以看到有些條目不一致……數據輸入方式不一致。 |
| 因此,我得到了一些有關我的數據潛在問題的重要線索。 |
| 注意所有的點。 溫度是一個連續變量,如果我看到點,則表明我缺少值。 所以溫度對於我的分析來說非常重要,這可能是有問題的。 |
| 其自然延伸是開始探索數據,一次一個變量。 當我想首先開始查看數據時,我最喜歡的工具之一是列查看器。 列查看器為我們提供了所選變量的數字摘要。 |
| 如果我們缺少值,就會出現 N 個缺失列。 在這裡我可以看到我缺少 369 個溫度值中的 265 個,所以如果我們認為溫度在分析中很重要,那麼這個這個,這是一個嚴重的差距。 |
| 我還可以看看我是否有一些奇怪的值。 因此,當我查看報廢數量和報廢率的最小值和最大值等內容時,我得到了負值。 如果這不可行,那麼我的數據或數據收集系統就有問題。 |
| 也很容易看到變量的錯誤編碼。 因此,例如,設施和批次號(可能應該編碼為名義值)報告平均值和標準差。 |
| 考慮這個問題的一個好方法是,如果物理上不可能有平均批次號或(零件號是另一個變量)或零件號,那麼這些應該更改為名義變量,而不是連續的。 |
| 當我第一次熟悉我的數據時,分佈是我要去的下一個地方。 |
| 如果您有連續數據,分佈可以讓您了解數據的形狀、中心和分佈,但您還可以查看是否有一些不尋常的值。 |
| 對於分類數據,您還可以查看有多少級別。 例如,客戶編號。 如果客戶數量是一個重要變量或潛在重要變量, |
| 我有很多客戶數量的級別或值。 當我準備數據時,我可能想將這些數據合併到四到五個存儲桶中,並為那些我實際上沒有大量數據的客戶提供另一個類別。 |
| 濕度。 我們發現列中存在 N/A 的問題。 我們看到的是條形圖而不是直方圖。 |
| 我們可以輕鬆地看到我們在供應商數據中查看的內容。 例如,Cox Inc 和 Cox, Anderson 是三種不同的拼寫方式,Hersh 是三種不同的拼寫方式。 |
| 對於速度,請注意速度,我們有一個從 60 到 140 左右的堆積分佈,但在最底部,我們看到有一兩個值 |
| 這非常接近於零,這可能是……可能是數據輸入錯誤,但這絕對是我們想要調查的事情。 |
| 其擴展是開始一次查看兩個變量的數據。 例如,使用圖形生成器或散點圖。 |
| 當您一次查看兩個變量時,您可以看到模式,並且可以更輕鬆地看到跨越多個變量的異常模式。 |
| 因此,例如,如果我查看廢品率和廢品數量,我會發現我有一些帶。 您的數據表中可能有一些內容可以解釋這種模式。 |
| 在本例中,條帶歸因於不同的批量大小,因此這個紫色條帶是我的批量大小為 5,000 的地方。 |
| 與小批量相比,大批量報廢的機會要多得多。 所以這可能有一定道理,但我也看到一些沒有意義的東西。 這兩個值都在負值範圍內。 |
| 因此,當我查看二維數據時,很容易看到這些。 |
| 我可以使用列切換器和數據過濾器向圖表添加額外的維度。 |
| 這也引導我進行潛在分析,因此我可能有興趣了解哪些 x 可能很重要,可能與廢品率相關。 |
| 同時,查看數據質量問題或潛在問題。 因此,對於廢品率而言,壓力和廢品率之間似乎存在正相關關係。 |
| 看起來並沒有太多的關係。 廢品率與溫度的關係非常平穩,因此這裡沒有太多變化。 |
| 但注意速度。 雖然存在負相關關係,但在頂部我看到了這兩個值;我在直方圖上看到的第一個值,但還有第二個值似乎很突出。 |
| 因此,60 左右的這個值可能只是一個異常值,但也可能是一個有效點。 我可能會質疑這個接近 0 的點是否有效。 |
| 我們查看了數據表。 我們一次查看一個變量的數據。 我們一次查看了兩個變量的數據,所有這些都適合數據探索並引導我們進行分析。 |
| 我們可能會使用更多高級工具(例如,探索異常值、探索缺失),這些工具超出了本課程或本次演講的範圍。 |
| 當您開始分析數據時,您可能會發現其他問題。 因此,例如,如果您有很多類別的分類變量 |
| 當您嘗試在回歸模型中擬合交互作用時,您知道 JMP 會警告您實際上無法執行此操作。 因此,當您開始分析數據時,整個過程是迭代的,您將在整個過程中發現潛在的問題。 |
| 關鍵是您要記下在查看數據時遇到的問題。 其中一些可以是 |
| 在進行過程中進行更正,以便您可以隱藏和排除值,可以重塑數據,可以在進行過程中重新清理數據,但您可能會決定需要收集新數據。 您可能需要進行 DOE,以便對數據本身更有信心。 |
| 如果您知道自己要重複此分析或其他人想要重複此分析, |
| 那麼您需要確保捕獲您正在採取的步驟,以便具有可重複性。 其他人可以重現您的結果,或者您可以稍後重複您的分析。 所以這就是我要把它交給喬丹的地方,喬丹將會 |
| 談論可重複的數據管理。 |
| 喬丹希勒 | 好的,謝謝你,米婭。 |
| 你好,我是喬丹·希勒。 我是 JMP 的系統工程師。 讓我們深入探討一下並更多地討論可重複性 |
| 用於您的數據管理。 |
| 米婭很好地介紹了這個想法,但讓我們提供更多細節。 這裡的想法是我們希望能夠輕鬆地重新執行 |
| 我們用來準備分析數據的所有管理步驟,我認為這樣做有三個主要好處。 首先是效率。 如果您必須...如果您的數據發生變化並且您需要將來對新數據重播這些管理步驟, |
| 使用一鍵式腳本運行一次比再次執行所有點擊活動要高效得多。 準確性是第二個好處。 點擊可能容易出錯,通過將其設為腳本,您可以確保准確的再現。 |
| 最後是文檔,這可能被低估了。 如果您有腳本,它會記錄您執行的步驟 |
| 拿。這是一條麵包屑痕跡,您可以稍後重新訪問,不可避免地,您必須重新訪問該項目並記住,我為準備這些數據做了什麼? |
| 擁有該腳本有很大幫助。 那麼今天我們將通過一個案例進行研究。 我將向您展示如何生成這些可重複的數據管理腳本之一 |
| 僅使用點擊。 JMP 16 中的支持技術是全新的。 它是增強日誌和增強日誌中的操作記錄。 |
| 這就是我們要做的,我們將像往常一樣通過點擊來執行我們的數據管理活動。 當我們這樣做時, |
| 我們需要的腳本,計算機代碼(稱為 JSL 代碼,JSL 代表 JMP 腳本語言),它將自動為我們捕獲 |
| 在新的增強日誌中。 然後,當我們完成點擊式管理後,我們所需要做的就是獲取該代碼並將其保存起來。 我們可能想做一些調整、一些修改,只是為了讓它變得更強一點,但這部分是可選的。 |
| 好的,這是您可以使用的備忘單。 這是一些最常見的數據清理活動 |
| 以及如何在 JMP 16 中執行這些操作,以便為自己留下痕跡,從而將 JSL 腳本保留在增強日誌中。 所以它涵蓋了諸如行操作、列操作之類的內容, |
| 修改數據表的方法,我們所有的數據清理操作以及如何通過點擊來完成它。 |
| 因此,它並不是數據清理可能需要執行的所有操作的詳盡列表,也不是增強日誌中捕獲的所有內容的詳盡列表,但是,這是您觸手可及的最重要的內容。 |
| 好吧,讓我們使用 Mia 介紹的組件文件進行案例研究,並使用增強日誌在 JMP 16 中製作數據管理腳本。 |
| 我們現在處於 JMP 16 中。 我要指出的是,這是 JMP 16 早期採用者計劃的最後一個版本,因此這是預發布版本。 不過,我確信這將與 JMP 16 的實際發布版本非常非常相似。 |
| 因此,要獲取日誌, |
| 我在這裡給你展示一下。 如果您習慣了以前版本的 JMP 的日誌,這看起來會有所不同。 它分為這兩個面板, |
| 好的,頂部有一個消息面板,底部有一個代碼面板。 我們要在這裡待上一段時間。 我將向您展示這是什麼樣的,但讓我們快速預覽一下,如果我要執行一些快速活動,例如導入文件並可能刪除此列。 |
| 您可以看到我所做的這兩個步驟(數據導入和刪除列),它們在此消息面板中列出 |
| 代碼(可重現數據管理腳本所需的 JSL 代碼)位於底部面板中。 可以,然後呢 |
| 這確實非常令人興奮,JMP 16 中的一個巨大優勢是,您只需通過指向並單擊即可獲得此代碼並在需要時獲取它。 |
| 因此,在 JMP 16 中,這個新的增強日誌視圖默認處於啟用狀態。 如果您想返回舊版本的日誌(即簡單的文本日誌),您可以在 JMP 首選項部分執行此操作。 有一個新的 |
| 日誌部分,如果您願意,您可以切換回日誌的舊文本視圖。 安裝 JMP 16 時的默認設置是增強日誌,我們將在稍後的案例研究中進一步討論其中一些其他功能。 |
| 好吧,那我這就去清理一下 |
| 現在的日誌來自紅色三角形。 清除日誌,讓我們開始我們的案例研究。 讓我們導入 Mia 與您共享的組件數據。 我們將從這個 csv 文件開始。 |
| 所以 |
| 我將通過將其拖入來執行最簡單的導入。 哦,我有一個……我已經打開了它的一個版本。 對不起,讓我,讓我先關閉舊版本 |
| 並再次清除日誌。 |
| 好的,簡單的導入 |
| 將其拖動到 JMP 窗口中。 現在我們有了該文件,即組件 A,包含 369 個批次,現在讓我們繼續進行數據清理活動。 我會打開 |
| 標題圖。 我們可以看到的第一件事是,設施列只有一個條目,其中有一個值,FabTech,因此沒有變化,這裡沒有什麼有趣的。 我只需右鍵單擊刪除該列即可刪除它。 |
| 同樣,當我們進入增強日誌時,會捕獲到這一點。 |
| 好吧,還有什麼? 讓我們想像一下,表末尾附近的廢品率列對我們來說非常重要,我希望看到表中較早的部分。 我要把它移到第四個位置 |
| 通過在列面板中抓住它並將其拖動到客戶編號之後的右側。 我們開始吧。 |
| Mia 提到這個濕度欄在導入時被錯誤地表示,主要是由於那些 N/A |
| 導致它作為字符變量出現的字母字符。 所以讓我們解決這個問題。 我們將右鍵單擊此處進入列信息 |
| 並將數據類型從字符更改為數字,將建模類型從名義更改為連續。 單擊“確定”。 讓我們單擊此處的日誌,您可以看到,我們現在已經捕獲了四個步驟,我們將繼續進行。 |
| 好吧,接下來怎麼辦? 我們有幾個變量需要從連續變量更改為名義變量。 這些是批號、零件號和流程。 因此,選擇其中三個後,我將右鍵單擊並將從連續更改為名義。 |
| 這些都已得到糾正。 |
| 再次,我們可以看到這三個步驟都記錄在日誌中。 |
| 好吧,還有什麼? 還有一些有點裝飾性的東西,這個專欄,壓力。 我的工程師喜歡將該列名稱視為 PSI,因此我們只需選擇該列並鍵入 PSI 即可更改它。 跳出那裡去其他地方。 這也將被記錄在日誌中。 |
| 供應商。 米婭向我們展示了一些拼寫不一致的地方。 這裡可能有太多值。 我們需要糾正字符值。 當列中存在不正確、不一致的字符值時,請考慮重新編碼工具。 |
| 重新編碼工具是解決這個問題的一種非常有效的方法。 因此,右鍵單擊供應商,我們將重新編碼。 |
| 讓我們對它們進行適當的分組。 我將從一些紅色三角形選項開始。 讓我們將所有值轉換為標題大小寫, |
| 我們還可以修剪該空白,從而糾正不一致的間距。 這已經糾正了一些問題。 讓我們手動更正其他所有內容。 我要把安德森一家聚集在一起。 我要把考克斯一家聚集在一起。 |
| 將赫什分組。 Trutna 和 Worley 在單一類別上已經是正確的。 我要做的最後一個更正是,你知道,只是列為空白或缺失的東西,我會給他們一個明確的 |
| 這裡缺少標籤。 |
| 好吧,當我們點擊重新編碼時, |
| 我們已將這些修復放入名為“供應商 2”的新列中。 |
| 僅糾正並折疊了 1、2、3、4、5、6 個類別。 |
| 好的。 |
| 好吧,我們來計算一下。 我們將在這裡使用批量大小和報廢數量來計算產量。 |
| 正確的。 是的,我意識到這有點多餘。 我們已經有了廢品率,而產量只是一減去廢品率,但為了論證,我們將執行 |
| 計算。 因此,我希望在廢棄的數字之後立即插入產量列,因此我將突出顯示廢棄的數字,然後轉到列菜單,選擇新列。 |
| 我們將這個東西稱為“yield”。 |
| 我們將在選定的列之後、廢棄的數字之後插入新列,並為其提供一個公式來計算產量。 |
| 我們需要良好單位的數量。 這將是批量大小減去報廢的數量。 |
| 這就是好單位的數量,我們將把整個數字除以 |
| 批量大小。 |
| 良好單位的數量除以批量大小,這就是我們的產量計算。 |
| 然後單擊“確定”。 |
| 這是我們的新 |
| 產量欄。 我們可以看到這是一減廢品率。 那……那很好,但現在讓我們忽略這樣一個事實:我們有一些收益率高於 100%。 |
| 好吧,我們快完成了。 只需要進行一些更改即可。 我注意到我們有兩個進程,目前它們僅標記為進程 1 和進程 2。 |
| 這不是很有描述性,也不是很有幫助。 讓我們給它們更多的描述性標籤。 流程1,我們稱之為生產流程;過程 2,我們稱之為實驗過程。 因此,我們將使用值標籤來完成此操作,而不是重新編碼。 我將進入專欄信息 |
| 我們將為一和二分配值標籤。 |
| 本欄中的一個將代表生產。 |
| 添加那個。 |
| 兩個代表實驗性的。 |
| 添加那個。 |
| 單擊“確定”。 好的。 它在標題圖中顯示一和二,但在數據表中顯示生產和實驗。 |
| 好吧,這是我們保存腳本之前的最後一步。 假設,為了便於論證,我只對數據感興趣......我只想在真空關閉時繼續進行分析。 |
| 是的,所以我將對數據進行子集化並創建一個新的數據表,其中僅包含真空關閉的行。 我將通過右鍵單擊其中一個已關閉真空的單元格來完成此操作 |
| 並選擇匹配的單元格。 |
| 這會選擇真空關閉的 313 行。 現在我們將轉到表子集, |
| 創建一個新的數據表,我們將其命名為 vac_off。 |
| 點擊確定。 |
| 好吧,這就是我們的新數據表,有 313 行,僅顯示真空關閉的數據。 |
| 就這樣結束了。 我們已經完成了所有數據管理,現在讓我們返回並重新訪問日誌並進一步了解我們所擁有的內容。 |
| 好的,所有這些步驟,以及其他一些我不打算做的步驟,都已記錄在日誌中。 |
| 看這裡,我們...每一行都是我們執行的步驟之一。 |
| 還有一些無關的東西,比如有一次我清除了行選擇。 我真的不需要……我真的不需要讓這部分成為我的劇本的一部分。 |
| 清除選定的行,所以讓我們將其刪除。 我只需右鍵單擊它並清除該項目即可將其刪除。 那挺好的。 |
| 好的,消息在這裡,JSL 代碼在這裡。 我想提請大家注意起源和結果。 這非常漂亮。 |
| 每當我們執行一個步驟,每當我們通過點擊執行某個操作時,您知道,我們會針對某些內容執行該操作,並且會產生某些結果。 這就是起源和結果。 因此,例如,當我們刪除設施列時...... |
| 好吧,也許這是一個不好的例子......讓我們選擇更改濕度列信息。 起源,我們所做的事情 |
| 是組件 A 表,我們看到它在此處列為數據表。 當我將鼠標懸停在它上面時,它會顯示“將組件 A 置於前面”,因此單擊它,是的,這會將我們帶到“組件 A”表。 很不錯。 |
| 結果就是我們對濕度欄所做的事情。 我們改變了濕度。 我們將其更改為數據類型數值和建模類型連續。 看看下面這個。 |
| 所以我可以點擊這裡,轉到濕度欄,它......它突出顯示,它為我們選擇。 JMP為我們選擇濕度色譜柱。 |
| 到處都是綠色,除了最後一個結果是藍色。 這是為了幫助我們跟踪不同數據表上的活動。 我們在組件 A 數據表上完成了所有這些活動 |
| 在我們的上一個活動中,我們對 Components A 數據表執行了子集操作,結果是一個名為 vac_off 的新數據表。 所以 vac_off 是藍色的。 是的,我們可以使用這些顏色來幫助您跟踪事物。 |
| 好吧,我想在日誌中向您展示的最後一個功能是......那就是 |
| 有用的是,如果您有一系列非常長的步驟並且您只需要找到一個,那麼此過濾框可以讓您找到。 假設我想找到子集。 就在那裡。 我們找到了子集數據表,我可以直接獲取我需要的代碼。 |
| 好吧,這……這就是我們所需要的一切。 我們的數據管理步驟被捕獲。 要製作可重複的數據管理腳本,我們所需要做的就是轉到紅色三角形,然後將腳本保存到新的腳本窗口。 |
| 導入步驟、刪除列步驟、移動廢品率步驟。 所有這些步驟都在腳本中。 |
| 我們有語法著色來幫助我們閱讀腳本。 我們擁有所有這些有用的評論,它們準確地告訴我們在每個步驟中正在做什麼。 |
| 是的,這就是一切。 這就是我們所需要的一切,我將保存它。 我會將其作為導入和清理保存到我的桌面...讓我們將其稱為導入和管理組件。 |
| 是的,這就是我們的可複制數據管理腳本。 因此,如果我返回 JMP 主窗口並關閉除新腳本之外的所有內容, |
| 如果我需要重播這些數據管理步驟,這就是我們要做的事情。 我剛剛打開了腳本文件,我們可以通過單擊運行腳本按鈕來運行它。 打開數據,進行所有清理,進行子集化並創建包含 313 行的新數據文件。 |
| 現在讓我們想像一下,我們需要在新數據上重播這一過程。 |
| 我有另一個版本的組件文件。 它被稱為組件 B。 它還有 50 行,因此它有 419 行,而不是 369 行。 想像一下,您知道,我們已經運行了另外 50 個批次的流程,並且我們擁有更多數據。 |
| 所以它被稱為組件 B,我想在組件 B 上運行這個腳本。 但您會注意到,在整個腳本中,它多次調用組件 A。 因此,我們只需搜索並替換組件 A,然後將其更改為組件 B。開始吧。 編輯。 |
| 搜索。 |
| 我們將找到組件A,替換為組件B。全部替換。 15 處已被替換。 |
| 你可以在這里和這裡看到它。 |
| 現在我們只需重新運行腳本,它就會出現在新版本的數據上。 你可以看到它有更多的行,事實上,它已經關閉了。 以前是313,現在是358。 |
| 好吧,這是一個可以針對新數據運行的可重複數據管理腳本。 |
| 好的,這又是備忘單。 這將出現在我們隨演講一起保存的材料中,因此您可以找到它。 這將告訴您如何通過點擊來完成數據管理,並為自己留下一個很好的可重播、可複制的數據管理腳本。 |
| 我們製作的腳本根本不需要我們進行任何編碼,但我將向您提供一些技巧,四個您可以使用的技巧 |
| 稍微增強一下腳本。 第一個技巧是在腳本的開頭插入這一行。 對於您的所有腳本編寫來說,這都是一件好事。 只需將默認的行名稱插入此處即可。 |
| 這是為了防止您的腳本與其他腳本交互。 這稱為名稱空間衝突,您實際上不必了解它的作用,只需執行即可。 這是一件好事。 這是很好的編程實踐。 |
| 第二個技巧是確保 JSL 表達式之間有分號。 |
| 增強日誌會自動為您執行此操作。 它在每個步驟之間放置所需的分號。 但是,如果您自己進行任何修改,您將需要確保這些分號放置正確。 所以只是對智者說一句話。 |
| 添加評論。 |
| 註釋是你在程序中留下註釋的一種方式,以一種不讓程序搞亂的方式留下,對吧。 這是一種方法 |
| 在程序中留下 JSL 解釋器無法解釋的內容。 還有增強日誌為您留下的註釋...增強日誌中的操作記錄為您留下,但您可以根據需要對其進行修改和添加。 那麼這裡是關於評論的要點。 |
| 典型的格式是兩個斜杠,斜杠後面的所有內容都是註釋。 因此,您可以在行首或行尾執行此操作。 因此解釋器將運行這個 X = 9 JSL 表達式,但隨後它將忽略斜杠之後的所有內容。 |
| 也可以,如果註釋較長,可以使用這種格式,即開頭為 /*,結尾為 */。 其中附有一條評論。 因此,註釋對於為自己留下註釋很有用,而且對於調試 JSL 腳本也很有用。 |
| 如果您想刪除一行代碼並使其不運行,您可以在其前面加上這兩個斜杠,如果您想對更大的代碼塊執行此操作,則可以使用此格式。 很高興了解如何使用評論。 |
| 我要留給您的最後一個技巧是概括數據表引用。 您還記得我們如何必須搜索和替換才能使該腳本在新文件名“組件 B”上運行嗎? |
| 我們必須在腳本中更改數據表中的 15 個實例。 如果我們只需更改一次而不是 15 次,不是很好嗎? 這樣您就可以使您的腳本更加健壯 |
| 通過概括數據表參考。 我們將使用 JSL 變量來保存這些表名稱,而不是使用名稱。 這就是我要說的。 我給你看一個例子。 |
| 左邊是增強日誌中記錄動作所生成的一些代碼。 |
| 我們正在打開 Big Class 數據表。 我們正在對年齡列進行操作,將其更改為連續建模類型,然後創建一個新的計算列, |
| 打開時,我們用它來對年齡列執行更改,我們在這裡使用它。 |
| 非常簡單,您需要做什麼才能使其更加健壯和通用。 |
| 您需要進行三項更改。 |
| 這是這裡的第一個更改,我們正在分配一個名稱。 我選擇了BC;你可以選擇任何你想要的。 你會經常看到DT。 |
| 因此,BC 是我們將在腳本的其餘部分中引用該 Big Class 數據表的名稱。 所以當我們想改變年齡時 |
| 年齡是指BC數據表和該數據表中的年齡列。 |
| 在這裡,我們向 Big Class 數據表發送一條消息,這就是雙箭頭語法的含義。 所以我們只是概括它,我們概括它,以便我們使用新名稱來發送該消息 |
| 到數據表。 現在,如果我們需要在名稱不是 Big Class 的新數據表上運行此腳本,這是我們需要進行的唯一更改。 我們只需更改腳本中的一處即可。 我們不必進行搜索和替換。 |
| 好的,在這四個技巧之後,如果您準備好將您的策展腳本提升到一個新的水平,請執行以下一些後續步驟。 您可以添加一個文件選擇器。 不需要太多編碼 |
| 更改它,以便當有人運行此腳本時,他們只需導航到他們想要運行該腳本的文件,而不必手動編輯腳本。 |
| 這是一個好主意。 如果您想要將腳本分發給組織中的其他用戶,可以將其封裝在 JMP 插件中,這樣用戶只需從 JMP 內的菜單中選擇腳本即可運行該腳本。 |
| 真的很方便。 最後,如果您需要按計劃運行此管理腳本以更新保存在網絡某處的主 JMP 數據表,您可以使用 Windows 中的任務計劃程序或 Mac OS 中的自動化程序來執行以下操作:那個按計劃進行的。 |
| 總而言之,Mia 討論瞭如何通過探索數據和迭代來識別問題來進行數據管理。 |
| 如果您自動化這些步驟,您將獲得可重複性的好處,即效率、準確性和記錄您的工作。 |
| 要在 JMP 16 中執行此操作,您只需像往常一樣點擊並單擊,增強日誌中發生的操作記錄就會捕獲您的數據管理步驟。 |
| 最後,您可以從增強日誌中導出和修改 JSL 代碼,以便創建可重現的數據管理腳本。 我們的談話到此結束。 非常感謝您的時間和關注。 |