Heim  >  Artikel  >  Backend-Entwicklung  >  有哪些 R 语言流行的包的功能是 Python 没有对应的包的?

有哪些 R 语言流行的包的功能是 Python 没有对应的包的?

WBOY
WBOYOriginal
2016-06-06 16:24:291556Durchsuche

主要关心数据科学方面,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 有一个不完整的实现,pandas.pydata.org/panda ,我感觉没有 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!!!!!!!!!!!!!!!!
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn