我喜歡 JMP 報告每天更新並自動發布,無需按任何鍵。 因此,為了證明我的意思,我將使用大多數人應該感興趣的案例研究。 從 2020 年開始,我想觀察疫情的演變,以預測未來是否會在特定國家實施封鎖。
首先,我必須尋找一個好的、可靠的數據源。 在研究了不同的公開數據庫後,我選擇了約翰霍普金斯大學冠狀病毒資源中心。 我的下一步是將三個不同的數據源導入到聯合管理計劃分析每日病例、每日死亡和每日康復情況。 我在文件菜單中選擇了“Internet 打開”,這樣可以輕鬆、直接地導入數據。 以下是已確診的 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 ,我的生活現在輕鬆多了。 現在,我可以輕鬆地從動作錄製本身中提取不同的腳本化數據操作步驟,並將它們插入到最終腳本中。

現在我已經有了所有數據導入和準備步驟的腳本,我可以使用 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 任務計劃程序。 在任務計劃程序中,我選擇一個基本任務,為該任務創建一個名稱,然後觸發它,以便它每天上午 8:00 發布報告

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

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