之前說過今年內會寫一本有關 data 的書。其中一 part 是 Programmed data entry 。我想的寫法是:我先在 blog 寫一些零碎的小片段,再編輯整合。你們有興趣的話,請多加評改,感謝。香港的研究人員,主要是研究助理們會多謝你。
世界上會 excel 或其他試算表的人,一定多於會其他數據輸入軟件的。根據非正式統計,小型研究絕大多數是以 excel 輸入數據的。但不代表 excel 是一個合適的數據輸入工具。 excel 太易用會令數據輸入計劃流於草率,亦偏向無限制亂輸入。最常見的情況是:有一疊問卷要輸入電腦,數據輸入人員即時製作 excel 檔,即時輸入。
因為太過草率,以 excel 輸入的數據容易錯漏百出,日後需要長時間清理( data cleansing ),費時失事。 ((其實 excel 都有如 validation 的規則設定,又或者以 VBA 進行 Programmed data entry ,但會這樣做的人不多。)) 不如在輸入數據前多想想。
今次我想用一個活生生的例子,表現何謂 Programmed data entry 。使用到的軟件叫作 epidata ,是免費的。 ((丹麥衛生當局將快會將此軟件開源。)) 或者你已知道, CDC 的 epiinfo 本來是建基於 epidata ,但後來卻分道揚镳。筆者較為喜歡 epidata ,因為 epiinfo 的以下特質令我生厭:

  1. epiinfo 新版使用 Access 格式儲存數據,是不公開的二位元檔案格式。雖然可用 SQL 進行 Query ,將數據匯入統計軟件,但這又是浪費時間。
  2. epiinfo 在設計輸入表格時太過視像化,像在使用 Visual Basic 之類的東西在砌介面。個人覺得此舉是浪費時間,甚至忽略了數據類型及數據結構的規劃。我較為喜歡 epidata 定義數據類型就自動產生一張簡單的數據輸入表格。

今次的例子,是要輸入一群兒童 ICU 的病人的 PIM2 ((Slater et al. PIM 2 : a revised version of the Paediatric Index of Mortality. Intensive Care Med 2003 ;29:278-85.)) 數據。 PIM2 為計算兒童入住 ICU 的死亡率的模型。所需的數據可參考這個網頁

下期會講講怎樣計劃一個數據輸入專案。