有哪些 R 語言流行的包的功能是 Python 沒有對應的包的?
來源:互聯網
上載者:User
主要關心資料科學方面,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會有些頭疼。如果願意花時間,同樣的邏輯、程式、演算法,你用任何語言,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 方便一些。caret這種機器學習常用的包,R有,python如果能有就好了。一個Python 神器,可以讓R所有的包整合在Python 架構裡。
Rpy2
有了這個你就有了R。magrittr,對於R來說革命性的Pipeline,Python沒有對應的對應的包一般好像都有,不過奇怪的是好像py的包名氣都要小一點,因此也對其可靠性不是很放心。
比如
R中的Shiny包偏個題。
資料科學方面,R Studio 是最好用的 IDE,連微軟的 VS 都要仿造一個 Data Science 模式,可見這種 editor + console + data panel + plot panel 的模式是最適合做資料分析的。
python 方面沒什麼好用的IDE,spyder 的包管理和 console 並不好用,Anaconda 也只是把 spyder 打了個包。Rodeo 最接近 R Studio,但是它拿 Node 做前端卡得不行。
R 好用的包大家都說的差不多了,我提一個 rvest,配合 magrittr,功能上勉強趕上 python 的爬蟲,但是寫起來省力多了,看起來也直觀。新手可能說的局限一些。
shiny單個小品可能沒有什麼殺傷力。但是升級的shiny server完全可以應對資料視覺效果的產品原型。左手寫好用r來etl存入資料庫,右手就可以配合ggplot和polty發布。可以半天就完成並使用。
重點不是哪個語言更勝一籌,而是你,順手。reshape2!!!!!!!!!!!!!!!!