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