快來學習打開API的正確姿勢,以世界銀行爲例,一文讀懂API

點擊上方關注,All in AI 中國

許多研究人員都對直接從網站獲取新的數據很感興趣。但是從網站上收集大量數據可能是不切實際的。當手動收集數據後,很容易出現人為錯誤。當自動收集數據時時,它可能會違反網站的服務條款。

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

所以,研究人員通常依賴一個被稱為API的工具,該工具代表應用程序編程接口。Web API根據規則提供了網站和用戶之間的通信方式。特別是,它們允許用戶通過從特定網站下的數據庫請求數據,從而快速獲得明確定義的數據類型。(這不是唯一的API。例如,智能手機應用程序經常使用API在你的設備和應用程序的數據庫之間來回傳送數據,但是在這篇文章中,我們關注的是從網站向用戶提供數據的API。)

許多大公司以及政府機構都創建了公共API。這些組織的數據可以很容易的訪問,以鼓勵開發人員使用他們的平臺。在Pew研究中心,作者經常使用API為研究收集信息。常見的有我們在社交媒體中的機器人、關於槍支的Google搜索、Facebook上的科學頁面以及關於政府政策的公開評論中(都使用了API)。

API如何提供數據

API提供各種形式的數據,但JSON是其中最受歡迎的。JSON是用於構造數據的有用文件格式,因為它保存了與製表符或逗號分隔文件(如.tsv和.csv文件)相關的更多層次結構和關於數據集的元信息。根據你用於數據分析時使用的編程語言,有些庫可以使JSON數據操作變得直觀。例如,在R統計語言中,可以使用jsonlite庫將API中的數據轉換為熟悉的R對象和類。

API可以用於不同的編程語言

為了在各種用不同語言編寫的計算機程序(如Java、Python、R等)上有效地與API進行交互,研究人員依賴於API"封裝器"。這些工具(存在於大多數流行的API中)允許研究人員在使用他們自己選擇的編程語言的同時直接從API請求數據。下面,我們以世界銀行的API為例,使用R訪問數據。

示例:如何與世界銀行的API進行交互

世界銀行API為研究人員提供了數百個關於世界各國健康、財富和文化的變量。為了展示如何使用這個API,我們可以編寫一個腳本來獲取一些變量並繪製它們。在這種情況下,我們將使用世界銀行提供的識別碼搜索變量,然後將變量提取到R的內存中。

下面的代碼使用WDI包,這是一個包含世界銀行API封裝的R包。 (如上所述,封裝器是一個函數或一組函數,用於執行對API的調用,並將結果轉換為比API本身更有用的內容。)要執行此代碼,首先必須安裝WDI軟件包以及devtools、ggplot2、gganimate、data.table和dplyr。你可以使用以下命令為R安裝這些函數:

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

我們還將為動畫安裝gganimate附加軟件包:

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

現在安裝了這些軟件包,讓我們將它們加載到工作內存中:

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

WDI包提供了一種便捷的方式來搜索世界銀行API以尋找可能值得研究變量。下面,我們在"string"字段之後指定要搜索的單詞,以及查找它的位置"name"字段。這樣,我們可以看到所有與道路基礎設施、免疫率和任何其他變量有關的變量與人均衡量。

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

搜索返回變量列表及其相應的代碼。現在我們已經知道了我們感興趣的變量的代碼,我們可以從API調用數據。我們用WDI函數來做到這一點。在這個函數調用中,我們提供了我們想要的國家的參數、變量代碼、第一年的數據、最後一年的數據以及可選的"extra"字段集。"extra"字段集是國家元數據——嘗試關閉此選項,看看會發生什麼。

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

數據以data.table的形式加載到內存中,這是一種矩形數據框架,可以輕鬆進行交互和分析。 存在的一個問題是變量名稱不容易解釋,所以讓我們將它們轉換為更直觀的東西。我們使用dplyr軟件包來實現這一點,該軟件包提供了一組用於處理數據的工具。它有一個方便可讀的語法。我們將使用"rename"命令來重命名變量。

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

接下來,讓我們刪除缺少的觀測值,以便我們可以繪製數據。當然,你應該仔細考慮缺失的國家以及原因。

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

我們可以創建一個特定年份的收入和免疫率之間關係的可視化表示。我們將為每個國家繪製一個點,按照該國人口的對數大小來確定。我們也會繪製一般關係的黃線。

下圖是一個使用ggplot2的靜態圖:

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

最後,我們將創建一個在一段時間內具有相同關係的動畫。為此,請首先安裝ImageMagick。 然後創建一個包含數據中所有年份的圖表:

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API

快來學習打開API的正確姿勢,以世界銀行為例,一文讀懂API


分享到:


相關文章: