楼主: ltx5151
34010 17

关于R和python一些数据分析方面的对比争论 [推广有奖]

  • 0关注
  • 26粉丝

VIP

教授

26%

还不是VIP/贵宾

-

威望
1
论坛币
48930 个
通用积分
63.8034
学术水平
100 点
热心指数
143 点
信用等级
68 点
经验
2871 点
帖子
529
精华
0
在线时间
1312 小时
注册时间
2009-5-7
最后登录
2023-10-13

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近几年,用R, Python的人越来越多,于是出现了众多关于用哪个做数据分析最好的争议。(Matlab是商用软件,所以暂不涉及。)
在这里分享一下自己的观点:
首先,从整体来说,个人认为数据分析需要的是在有限时间内,用最可行的方式拿到最有用的结果。因此,不应该局限于任何单一的编程方法,而应该是各取所长,根据个人特点,问题的形式而灵活选取或者结合。

其实,关于R做数据分析的优势已经不言而喻了,众多和全面的统计方法使得从方法上来说,R的数据分析能力是其他几个不能比拟的。其实争议最多的也就是出现在其计算性能和全面性上。

1. 运算速度:
针对于程序速度的比较,有众多的测试方法和不同的结果。比如,这个链接里的结果(http://attractivechaos.github.io/plb/)。
综合其他各个地方的测试结果,其实大体说来从基本运算速度来说,Python > R. 但是要注意,这里所说的运算速度是“基本计算”。也就是说不涉及引用特殊package,不用特殊数据结构和运算方式(比如R中的矢量化运算)的运算。而这样的运算比较很大程度上取决于基本程序逻辑的速度,比如for循环。R在这点的表现是很差的。基本上会比pyhon慢 3~10倍。


但是,如果你愿意多花些心思更好的利用矢量化编程进行计算,那么无论从程序的长度来是速度上,都会使R的表现有显著性提高。我之前的一个帖子做过这样的比较 (https://bbs.pinggu.org/thread-1042435-1-1.html),具体的内容就不重复了。总之,在这样的使用方式下,对大部分运算,R的速度是可以和python接近的,当然,用户也需要花更多地心思去优化程序。


除此之外,在实际使用的角度来说,数据分析在R中大部分时候使用已有的方法,因此可以使用众多已经成型的package。如果你使用的package质量很好,通常在大计算量的程序中,作者实际使用的都是更低级更高效的语言(比如C, Fortran)。因此,这些大计算量的步骤实际上是以最高效的方式完成的。如果相应的运算在pyhon里面没有调用其他低级语言的优化,R就可以在这些方面胜过python。我这里说到的是不需要自己编写的底层语言调用,在R和python中都可以实现调用别的语言,但是这需要用户自己编程,从人工角度来讲,专业性较高,不在讨论范围。

整体来说,对于对R使用和编程有一定深入理解的人来说,我不认为R做数据分析的速度会比python差。但是对于简单粗暴的编程方式,python的确更胜一筹。

2. 全面性:

从这点来说,我认为Python的确胜过R。无论是对其他语言的调用,和数据源的连接、读取,对系统的操作,还是正则表达和文字处理,Python都有着明显优势。毕竟,python本身是作为一门计算机编程语言出现的,而R本身只是源于统计计算。所以从语言的全面性来说,两者差异显著。

综上所述,本人认为,对于本地文件直接的数据分析,大部分时候R是比较Python更好的 (速度相近,但分析更专业)。如果涉及多方资源的协调(比如远程、数据库、系统、网页),那么最好的方式是将python和R相结合使用。

当然,每种语言有自己的学习曲线。因此学习本身也要多花时间,因此如何选取还要依赖于个人而论。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 数据分析 attractive package attract python 能力 软件 统计 最好 数据分析专题 数据处理 数据分析软件 数据分析报告 面板数据分析 excel数据分析 数据分析方法 项目数据分析

回帖推荐

feasible 发表于5楼  查看完整内容

Python用于程序开发,R用于统计分析。 Python做统计分析肯定不如R,R做程序开发肯定不如Python。
已有 6 人评分经验 学术水平 热心指数 信用等级 收起 理由
海老 + 1 + 1 + 1 精彩帖子
狂热的爱好者 + 36 + 1 + 1 + 1 精彩帖子
RyanPCH + 1 分析的有道理
ryusukekenji + 1 + 1 + 1 我很赞同
qoiqpwqr + 1 + 1 鼓励积极发帖讨论
dxystata + 50 + 1 鼓励积极发帖讨论

总评分: 经验 + 86  学术水平 + 4  热心指数 + 5  信用等级 + 4   查看全部评分

本帖被以下文库推荐

沙发
Ben910128 发表于 2013-9-13 10:50:38 |只看作者 |坛友微信交流群
作为一个新手,明确地选择学习python和R~

使用道具

藤椅
jiangmouse 发表于 2013-10-18 16:10:12 |只看作者 |坛友微信交流群
说的很不错

使用道具

板凳
jzdfenger 发表于 2013-10-19 08:12:53 |只看作者 |坛友微信交流群
python 计算机语言 R 统计学语言

使用道具

报纸
feasible 发表于 2013-10-26 09:23:40 |只看作者 |坛友微信交流群
Python用于程序开发,R用于统计分析。
Python做统计分析肯定不如R,R做程序开发肯定不如Python。

使用道具

地板
sinoyster 发表于 2013-10-27 13:28:59 |只看作者 |坛友微信交流群
还好都在学,谢谢楼主

使用道具

7
free160160 发表于 2013-11-8 11:09:22 |只看作者 |坛友微信交流群
楼主能不能给推荐两本python还有R的适合初学者的,万分感谢

使用道具

8
ltx5151 发表于 2013-11-10 02:35:51 |只看作者 |坛友微信交流群
free160160 发表于 2013-11-8 11:09
楼主能不能给推荐两本python还有R的适合初学者的,万分感谢
R的书论坛上太多了吧。我个人没知道任何专门将python和统计计算的书。
本人使用的R和python都是边用边学的,所以没怎么看过整本的书。但是网上有很多有用的网页资源,比如Google programming class for python还有这个关于scientific computing with python的blog(http://www.scientificpython.net/)。

使用道具

9
free160160 发表于 2013-11-22 14:27:23 |只看作者 |坛友微信交流群
ltx5151 发表于 2013-11-10 02:35
R的书论坛上太多了吧。我个人没知道任何专门将python和统计计算的书。
本人使用的R和python都是边用边学 ...
好的,谢谢lz

使用道具

10
道可道 发表于 2014-7-2 11:56:40 |只看作者 |坛友微信交流群

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 16:18