有哪些 R 語言流行的包的功能是 Python 沒有對應的包的?
主要關心數據科學方面,Python有numpy,scipy,statsmodels,scikit-learn,seaborn,pymc,pandas,keras,lasagne等。
有哪些R語言流行的包的功能是Python沒有對應的包的?還有哪些R語言能提供的功能是Python不能直接實現的(用戶自己寫演算法不算)?
ggplot2,R裡面最為炙手可熱的包, python裡面只有一個山寨的,功能不完整。
比較流行的R包python基本都有對應的。
一些稀奇古怪的R包比如涉及計量經濟學中/統計學中的一些小眾模型時,Python是沒有對應包的,畢竟R是專為學術界統計學家量身定製的而Python屬於工業界(碼農)語言。
這年頭一般提出某種奇技淫巧的新模型或者新演算法的統計學家們通常都會在公開發表的論文後面附上自己編寫的對應R包並且掛在CRAN上。導致的結果就是,幾乎任何一種現存的模型或者演算法都可以在R上找到對應的包。(包寫的好不好是另外一回事)
計量經濟學家應該更傾向於把新模型或者演算法封裝成stata或者SAS中的macro,但近年用R的計量經濟學家也在不斷增多。
不夠python中沒有對應的包也沒關係,可以通過rpy2調用R中的包,只是修Bug會有些頭疼。舉兩個例子:
- Shiny
Shiny是R中的一種Web開發框架,使得R的使用者不必太了解css、js只需要了解一些html的知識就可以快速完成web開發,且shiny包集成了bootstrap、jquery、ajax等特性,極大解放了作為統計語言的R的生產力。使得非傳統程序員的R使用者不必依賴於前端、後端工程師就可以自己依照業務完成一些簡單的數據可視化工作,快速驗證想法的可靠性。
下面是其官網的簡單Gallery小例子:Shiny - Kmeans exampleShiny - Movie explorerShiny - Google Charts
Shiny - Word cloudShiny - Bus dashboard- CRAN - Package ggplot2
ggplot2是我見過的最人性化最smart的畫圖工具,它就像是搭積木一樣,將各個元素進行組合,最終得到任何你想要的圖像,而且極其美觀。
散點圖:條形圖:柱狀圖:
密度圖:一個Python 神器,可以讓R所有的包集成在Python 框架里。
Rpy2
有了這個你就有了R。對應的包一般好像都有,不過奇怪的是好像py的包名氣都要小一點,因此也對其可靠性不是很放心。
比如
R中的Shiny包如果願意花時間,同樣的邏輯、程序、演算法,你用任何語言,R,Python,C++ 一般都是可以實現的,就是願不願意花時間,哪種語言自己寫起來順了。比如我做過用 Stata 重寫 R 包 glmnet 這種事情。。。。最後事實證明是完全可行的,只是時間成本很高。。。那些 Fortran 代碼啊,Stata 那個語法。。。
很多好的 R 包或者好的演算法一般都有 Python 對應的,讓用戶可以選擇自己熟悉的語言來進行操作。當然這些都是輪子黨花時間貢獻出來的,向他們致敬!
但是不得不說,黑魔法方面 R 可能強一些,這種東西,因為如果用得得當,可以效率倍增,如果用得不好,代碼的可讀性不好。
比如 magrittr 和 pipeR 帶來的管道操作,把類似 F# 管道的操作帶到了 R,方便了很多嵌套的函數運算。Python 有一個不完整的實現,http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#pipe ,我感覺沒有 R 裡面用起來順滑。
類似的還有 ggplot2 的語法,+ + + + 的操作。
然後還有一些感覺比較有趣的:
swirl 用 R 學 R。
htmlwidgets for R
htmlwidgets: threejs
個人比較喜歡 rmarkdown 的導出的可重複研究文檔,感覺比 IPython notebook 方便一些。magrittr,對於R來說革命性的Pipeline,Python沒有對應的
caret這種機器學習常用的包,R有,python如果能有就好了。
新手可能說的局限一些。
shiny單個小品可能沒有什麼殺傷力。但是升級的shiny server完全可以應對數據可視化的產品原型。左手寫好用r來etl存入資料庫,右手就可以配合ggplot和polty發布。可以半天就完成並使用。重點不是哪個語言更勝一籌,而是你,順手。
推薦閱讀:
※R語言相關圖書?
※ggplot2能做這種圖么?
※R 語言必學的 10 大包是什麼?
※R有將中文地址轉化成經緯度的包么?
※怎麼用R語言繪製英文中國地圖,標註英文省名,以及在不同的省份填充指定的顏色?