我喜歡JMP報告每天更新並自動發布而無需按任何鍵。 因此,為了說明我的意思,我將使用一個大多數人都應該感興趣的案例研究。 從2020年開始,我想看看大流行的演變,以預測未來的封鎖是否會在特定國家發生。
首先,我必須尋找一個良好且可靠的數據源。 研究了不同的公開數據庫後,我選擇了約翰·霍普金斯冠狀病毒資源中心。 我的下一步是將三個不同的數據源導入JMP分析每天的病例,每天的死亡人數和每天的恢復情況。 我在文件菜單中選擇了Internet Open,這使導入數據變得簡單而直接。 以下是已確認的COVID-19病例的示例。

為了將其轉換為腳本,我必須將手動導入步驟轉換為三個數據集,如下所示。 以下是已確認的COVID-19病例的數據集示例:
Open(
"https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv",
HTML Table( 1, Column Names( 1 ), Data Starts( 2 ) ));
我使用的主要語法是“ Open()”函數,該函數可打開表和腳本以及來自互聯網的數據! 該語句比自動寫入表中的語句簡單得多。
接下來,將數據導入到JMP中:

現在,我們準備採取下一步步驟,準備好數據進行分析。
- 將日期與通用引用的列名稱一起堆疊到一列中(因為數據每天都會更新)。 在“表”菜單中,“堆棧”選項是一個絕佳的平台,可手動執行此任務。

- 重命名“累積案例”,“累積死亡人數”和“累積恢復”中的列。
- 加入三個數據集:每日病例,每日死亡人數和每日康復情況。
- 將日期格式更改為數字和連續,然後設置日期格式。
- 使用每一列的Dif公式函數,使用每日新病例,每天新死亡和每天新恢復的公式創建三個新列,而沒有負值。
當在數據集中切換位置時會出現負值(請參見下文),這當然沒有任何意義。 因此,我必須創建三個新列以將負值替換為0(通過對每列使用Max公式函數)。

最終數據集現已準備好進行分析。

為了在此階段實現自動化,已編寫了數據準備的所有不同步驟的腳本。 並感謝動作記錄在日誌中,這是新的JMP 16 ,我的生活現在變得如此輕鬆。 現在,我可以輕鬆地從Action Recording本身提取不同的腳本化數據操作步驟,並將其插入最終腳本中。

現在,我已經掌握了所有數據導入和準備步驟的腳本,可以使用Graph Builder以有用的方式可視化和分析數據,如下例所示:

圖表的上半部分包含全球累積的病例,死亡和康復情況。 下半部分每天在世界範圍內有新病例,死亡和康復。 我添加了本地數據過濾器,該過濾器使我可以針對特定國家/地區進行過濾。 我將圖形腳本添加到最終腳本中。
最後一步,我想將此發佈到JMP Live或JMP Public。 下面是在JMP Public上發布了網絡報告,JMP Live的公共版本:
由於在JMP 16中發布已經發生了很大的變化,因此,您可以使用以下方法從JMP 16中將腳本發佈到JMP Public。 首先,需要創建使用桌面JMP的JMP Live連接。在JMP 16中,轉到“文件”->“發布”->“管理連接”。 添加一個新的連接。 接下來,指定URL和API密鑰。 要獲取API密鑰,請從JMP Public或JMP Live帳戶設置生成它。
在JSL中,使用該連接發佈到JMP Live。這裡是將分析發佈到JMP Public的腳本示例(其中graph1是要發布的報告)。 我將其設置為公開,以便每個人都可以使用該報告)。
webreport = New Web Report();
webreport << Add Report( graph1, title( "Graph1 Title" ) );
use_data = "true";
jmplive = New JMP Live( Connection( "JMP Public" ), Prompt( If Needed ));
jmpliveresult = jmplive << Publish ( webreport, Public (1));
report = jmpliveresult << As Scriptable;
由於此報告每天都會使用新數據進行更新,因此需要替換現有報告。
jmpliveresult = jmplive << Replace( webreport, ID( "website ID" ) );
網站ID是public.jmp.com/packages/之後的代碼(請參見下文),使用它可以替換現有報告的內容,而不必創建具有更新內容的新報告。

到現在為止還挺好! 為了每天發布一次,我使用Windows Task Scheduler。 在“任務計劃程序”中,我選擇一個“基本任務”,為該任務創建一個名稱,然後觸發它,以便它每天早上8:00發布報告。

最後一步是告訴任務計劃程序要打開哪個程序以及要執行哪個操作。 因此,我定義了要使用的JMP16.exe路徑和JSL腳本。

等等,現在我的報告將每天發布和更新,而無需按任何鍵。 你會找到JMP Public發表的報告。