10分鐘帶你認識Dataverse與 R「dataverse」套件

王俞才

一、 Dataverse簡介

Dataverse是一個用於共享、儲存、引用、探索和分析研究資料的數據管理系統,同時也代表著透過該數據管理系統而建立的資料庫。因此,學校系所、期刊、組織機構、研究人員、研究團隊或專案等都可以利用這套數據管理系統來建立自己的Dataverse,發佈想與他人共享的研究資料,並可藉此獲得學術信譽和提高網路能見度,亦有助於他人更方便地取得及二次利用研究資料。

Dataverse的數據管理系統中定義了三個重要的層次:Dataverse、資料集(dataset) 和文件(file)。資料集是由一個或多個文件及詮釋資料(metadata)所組成的集合。而文件是組成資料集的最小單位,它可以是資料使用說明、資料檔、問卷或純文字檔等任何形式的檔案。使用者可以將這些資訊做為檢索的條件,便於找到符合需求的研究資料,並進一步進行資料探索和分析。

Dataverse repository是基於Dataverse而建立的資料分享平台。如圖一,一個Dataverse repository集結了多個Dataverse,而每個Dataverse除了可以蒐錄多個資料集外,還可以再包含其他的Dataverse。因此,使用者不僅可以透過Dataverse repository獲取大量的研究資料,同時也可以連結到很多其他的Dataverse,然後再透過這些Dataverse找到更多的研究資料和Dataverse



圖一、Dataverse repository組織結構圖

如圖二,全世界目前共有43Dataverse repository,其中Harvard Dataverse是由哈佛大學量化社會科學研究所(Harvard Institute for Quantitative Social Science, IQSS)、哈佛大學圖書館(Harvard Library)及哈佛大學資訊技術中心(Harvard University Information TechnologyHUIT)共同合作開發的,為目前最著名且蒐錄最多研究資料的Dataverse repository

Harvard Dataverse包含了超過3,200Dataverse涵蓋社會科學、生命科學、農業科學、地球與環境科學、資訊科學等學科,累計共有85,764個資料集或521,803份文件。這些研究資料可以透過出版日期、主題和作者姓名進行瀏覽,也可透過查詢進行檢索、下載和引用。截至六月初,其資料下載次數已超過730萬次。



圖二、43Dataverse repository分布圖

二、 資料查詢

在沒有註冊或登入的情況之下,使用者仍然可以在Harvard Dataverse中查詢Dataverse、資料集和文件。以圖三為例,透過簡易查詢我們可以找到「ICPSR Harvested Dataverse」。點選該連結後,就可以繼續搜尋或瀏覽ICPSR Harvested Dataverse底下所蒐錄的資料集和文件。對於已發布的資料集,可以瀏覽其資料集說明,並進一步進行資料探索和資料視覺化。若對於尚未發布的資料集感興趣,則必須向該Dataverse的管理者取得授權來瀏覽。此外,「Advanced Search」功能允許使用者針對Dataverse、資料集和文件等相關較詳細的欄位來做查詢,例如:Dataverse的學門分類、對資料集的描述、變數名稱或變項說明等,讓使用者可以得到更精確的搜尋結果。根據搜尋結果,可以再利用「Sort」按相關性、發布時間或作者姓名筆畫等將查詢結果加以排序。


圖三、Harvard Dataverse 資料查詢頁面

三、 資料下載

在執行檢索並找到我們要的Dataverse或資料集後,點擊Dataverse和資料集的名稱或其縮圖圖像即可被帶到該Dataverse或資料集的頁面。如圖四,一旦進入資料集的頁面後,我們可以看到其標題、引用、說明和其他欄位等。在這些欄位的下方,還可以看到資料集包含的所有文件、詮釋資料和資料版本等資訊。Harvard Dataverse提供了EndNote XMLRIS FormatBib Tex等三種格式的資料集引用說明供使用者下載。



圖四、資料集頁面

如圖五,在資料集頁面的「Files」之下,使用者可以自行下載所需的文件和資料檔。在資料檔部分,使用者還可以選擇下載文字檔(以Tab分隔或逗號分隔)、RData、變數的詮釋資料、子集和文件引用方式說明等不同類型的文件。使用者若要一次下載多份文件,可以先選取要下載的文件,再點擊頁面右上角「Download」,文件將以zip壓縮檔提供。
 


圖五、文件下載頁面

四、 線上分析

在諸多社會科學相關的資料庫(例如:ICPSR及NSD等),都會針對所蒐藏的調查統計資料提供線上分析的功能。Harvard Dataverse起源於量化社會科學的資料管理,因此也有提供線上分析的功能。哈佛大學量化社會科學研究所不僅研發Dataverse之外,還開發了TwoRavens和Zelig兩套軟體系統。TwoRavens是一個用於資料探索及分析的統計工具系統。Zelig則是利用大量R軟體的套件編寫而成,用於估計、解釋及呈現統計模型。Harvard Dataverse即是透過TwoRavens和Zelig對資料檔進行線上分析。其做法是先將資料檔上傳到TwoRavens,TwoRavens再利用Zelig對資料進行分析及建模。如圖六及圖七,使用者可以在資料檔的Download鍵旁點擊「Explore」後即可進行簡易的線上分析,操作上也相當容易。
 


圖六、摘要分析



圖七、交叉分析

五、 Dataverse的建立與管理

Harvard Dataverse中建立自己的Dataverse或資料集並不困難,使用者若有興趣可自行參考官方的使用者手冊

Dataverse、資料集和文件的建立、管理和共享是一個協作的過程。對此,Dataverse訂定了13種使用權限,大致可分為以下7類:
1.          新增權限:新增Dataverse、新增資料集。
2.          瀏覽權限:瀏覽尚未發布的Dataverse、瀏覽尚未發布的資料集。
3.          下載權限:下載文件。
4.          編輯權限:編輯Dataverse、編輯資料集。
5.          管理權限:管理Dataverse權限、管理資料集權限。
6.          發布權限:發布Dataverse、發布資料集。
7.          刪除權限:刪除Dataverse、刪除草稿版資料集。

由於不同的使用者對於Dataverse有不同的權限需求,因此Dataverse在多種不同的權限組合中共定義了8種角色:管理者、捐贈者、監管者、資料集創建者、Dataverse與資料集創建者、Dataverse創建者、文件下載者和成員等,不同角色具有不同的權限。如圖八,管理者具有所有的權限;捐贈者則具有瀏覽尚未發布的Dataverse、下載文件、編輯資料集和刪除草稿版資料集等四種權限。此外,Dataverse也允許同一使用者同時具有多種角色。


圖八、Dataverse的管理者角色與使用權限

六、 Rdataverse」套件

dataverse套件是Dataverse 4料庫的用戶端。該套件可以對任何的Dataverse repository進行資料檢索、下載和儲存,也可以用來建立Dataverse和上傳資料檔。dataverse套件可以經由CRAN來下載,或者透過GitHub找到最新的釋出版本和查看相關的資訊:
if (!require("remotes")) {
  install.packages("remotes")
}
remotes::install_github("iqss/dataverse-client-r")
上述有提及dataverse套件可以對目前43Dataverse repository進行資料檢索。但在檢索之前,使用者必須透過環境變數DATAVERSE_SERVER的設定來指定要搜尋的Dataverse repository
library("dataverse")
Sys.setenv("DATAVERSE_SERVER" = "dataverse.harvard.edu")
dataverse套件提供了一個API來檢索Dataverse、資料集和文件等。最簡單的搜尋方式為任意給他一個查詢字串:
dataverse_search("ICPSR")
或者可以依指定的欄位來做較精確的查詢:
dataverse_search("ICPSR",type = "dataverse")
在資料取得方面,最容易的方式就是先利用DOI來查詢該資料集所包含的文件:
get_dataset("doi:10.7910/DVN/ARKOTI")
#> Dataset (75170):
#> Version: 1.0, RELEASED
#> Release Date: 2015-07-07T02:57:02Z
#> License: CC0
#> 21 Files:
#>                           label     version      id
#> 1                  alpl2013.tab          2    2692294
#> 2                   BPchap7.tab          2    2692295
#> 3                   chapter01.R          2    2692202
#> 4                   chapter02.R          2    2692206
#> 5                   chapter03.R          2    2692210
#> 6                   chapter04.R          2    2692204
#> 7                   chapter05.R          2    2692205
#> 8                   chapter06.R          2    2692212
#> 9                   chapter07.R          2    2692209
#> 10                  chapter08.R          2    2692208
#> 11                  chapter09.R          2    2692211
#> 12                  chapter10.R          1    2692203
#> 13                  chapter11.R          1    2692207
#> 14 comprehensiveJapanEnergy.tab        2    2692296
#> 15         constructionData.tab         2    2692293
#> 16             drugCoverage.csv         1    2692233
#> 17         hanmerKalkanANES.tab         2    2692290
#> 18                 hmnrghts.tab          2    2692298
#> 19                 hmnrghts.txt          1    2692238
#> 20                   levant.tab          2    2692289
#> 21                       LL.csv           1    2692228
#> 22                 moneyDem.tab          2    2692292
#> 23            owsiakJOP2013.tab          2    2692297
#> 24                PESenergy.csv          1    2692230
#> 25                  pts1994.csv          1    2692229
#> 26                  pts1995.csv          1    2692231
#> 27                 sen113kh.ord          1    2692239
#> 28                SinghEJPR.tab          2    2692299
#> 29                 SinghJTP.tab          2    2692288
#> 30                 stdSingh.tab          2    2692291
#> 31                       UN.csv           1    2692232
#> 32                  war1800.tab          2    2692300
最後再利用文件的檔名即可將資料載入R
f <- get_file("constructionData.tab", "doi:10.7910/DVN/ARKOTI")
tmp <- tempfile(fileext = ".dta")
writeBin(as.vector(f), tmp)
dat2 <- foreign::read.dta(tmp)
除了檔名,也可以利用文件的id來取得資料:
f <- get_file(2692293)
以上是針對dataverse套件所作粗淺的介紹,若讀者想對dataverse套件有更深入地瞭解,可透過R Client for Dataverse 4 Repositories獲取更進一步的資訊。

七、 參考文獻

1.          Introduction to Dataverse. (2019-06-01). https://cran.r-project.org/web/packages/dataverse/vignettes/A-introduction.html.
2.          Harvard dataverse. (2019-06-01). https://dataverse.harvard.edu/.
3.          The Dataverse project. (2019-06-01). http://dataverse.org/.
4.          R Client for Dataverse 4 Repositories. (2019-06-01). https://github.com/iqss/dataverse-client-r
5.          TwoRavens. (2019-06-01). http://2ra.vn/
6.          Zelig Project. (2019-06-01). https://zeligproject.org/
7.          羅鵬程、朱玲、崔海媛、聶華。基於Dataverse的北京大學開放研究數據平台建設。圖書情報工作,201660(3):52-58

留言

張貼留言

這個網誌中的熱門文章

使用Python進行資料整理 – 初探Pandas

SAS、SPSS、STATA 統計軟體檔案格式轉換介紹

資料整理與檢誤經驗談—以SPSS程式進行邏輯檢查