Python和R已經(jīng)成為數(shù)據(jù)分析中兩大利器,兩者各有所長(zhǎng)裕便,相互借鑒铸抑。
Python 的 pandas 從 R 中偷師 dataframes奏瞬,R 中的 rvest 則借鑒了 Python 的 BeautifulSoup班挖,我們可以看出兩種語(yǔ)言在一定程度上存在的互補(bǔ)性。通常芯砸,我們認(rèn)為 Python 比 R 在泛型編程上更有優(yōu)勢(shì)萧芙,而 R 在數(shù)據(jù)探索、統(tǒng)計(jì)分析是一種更高效的獨(dú)立數(shù)據(jù)分析工具假丧。所以說(shuō)双揪,同時(shí)學(xué)會(huì)Python和R這兩把刷子才是數(shù)據(jù)科學(xué)的王道。本文將介紹R和Python的應(yīng)用場(chǎng)景包帚,同時(shí)介紹在Windows環(huán)境下實(shí)現(xiàn)R和Python的共舞通道——rpy2
Python的應(yīng)用場(chǎng)景
- 網(wǎng)絡(luò)爬蟲(chóng)/抓扔嫫凇:盡管 rvest 已經(jīng)讓 R 的網(wǎng)絡(luò)爬蟲(chóng)/抓取變得容易,但 Python 的 beautifulsoup 和 Scrapy 更加成熟、功能更強(qiáng)大疯趟,結(jié)合django-scrapy我們可以很快的構(gòu)建一個(gè)定制化的爬蟲(chóng)管理系統(tǒng)拘哨。
- 連接數(shù)據(jù)庫(kù): R 提供了許多連接數(shù)據(jù)庫(kù)的選擇,但 Python 只用 sqlachemy 通過(guò)ORM的方式信峻,一個(gè)包就解決了多種數(shù)據(jù)庫(kù)連接的問(wèn)題倦青,且在生產(chǎn)環(huán)境中廣泛使用。Python由于支持占位符操作盹舞,在拼接SQL語(yǔ)句時(shí)也更加方便产镐。
- 內(nèi)容管理系統(tǒng):基于Django,Python可以快速通過(guò)ORM建立數(shù)據(jù)庫(kù)踢步、后臺(tái)管理系統(tǒng)癣亚,而R中的 Shiny 的鑒權(quán)功能暫時(shí)還需要付費(fèi)使用。
- API構(gòu)建:通過(guò)Tornado這個(gè)標(biāo)準(zhǔn)的網(wǎng)絡(luò)處理庫(kù)获印,Python也可以快速實(shí)現(xiàn)輕量級(jí)的API述雾,而R則較為復(fù)雜。
R的應(yīng)用場(chǎng)景
- 統(tǒng)計(jì)分析: 盡管 Python 里 Scipy蓬豁、Pandas绰咽、statsmodels 提供了一系列統(tǒng)計(jì)工具 ,R 本身是專門為統(tǒng)計(jì)分析應(yīng)用建立的地粪,所以擁有更多此類工具,尤其是在計(jì)量經(jīng)濟(jì)學(xué)方面的包取募,是Python無(wú)法比擬的
- 互動(dòng)式圖表/面板: 近來(lái) bokeh、plotly蟆技、 intuitics 將 Python 的圖形功能擴(kuò)展到了網(wǎng)頁(yè)瀏覽器玩敏,甚至我們可以用tornado+d3來(lái)進(jìn)一步定制可視化頁(yè)面,但 R 的 shiny 和 shiny dashboard 速度更快质礼,所需代碼更少旺聚。
如何實(shí)現(xiàn)R語(yǔ)言和Python的完美結(jié)合
- Python和R共享文件,將Python清理好的數(shù)據(jù)儲(chǔ)存成cvs等格式眶蕉,再交給R進(jìn)行進(jìn)一步的回歸分析和圖表繪制等砰粹。
- 讓Python直接調(diào)用R函數(shù);目前可以通過(guò)第三方庫(kù)——rpy2實(shí)現(xiàn)R語(yǔ)言和Python的互通造挽。
顯然第二種方法可行性較高碱璃,但是windows環(huán)境下,rpy2的安裝經(jīng)常報(bào)錯(cuò)饭入。我之前在安裝rpy2時(shí)遇到了無(wú)數(shù)的坑嵌器,所以將經(jīng)驗(yàn)共享給大家。
rpy2 安裝教程
- conda安裝
conda install rpy2
- 安裝編譯好的rpy2
- 下載地址:rpy2
- 打開(kāi)cmd谐丢,cd + 下載路徑爽航;
- pip install rpy2文件名
安裝完之后蚓让,如果我們直接導(dǎo)入rpy2,任然會(huì)存在報(bào)錯(cuò)問(wèn)題讥珍。需要對(duì)環(huán)境進(jìn)行設(shè)置:
import os os.environ['R_HOME'] = r'C:\Program Files\R\R-3.3.2' # R語(yǔ)言安裝目錄 os.environ['R_USER'] = r'C:\ProgramData\Miniconda3\Lib\site-packages\rpy2# rpy2安裝目錄
在Python中運(yùn)行以上代碼历极,之后便可以順利的使用rpy2了。
最后提供一下rpy2的官方文檔和社區(qū)串述。官方文檔提供了更多的使用方法执解,社區(qū)內(nèi)可以個(gè)rpy2的使用者進(jìn)行交流。