本站分享:大数据、数据分析师考试认证培训,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训广告位

关于R和python数据分析方面的对比争论

r语言 cdadata 453℃ 0评论

关于R和python数据分析方面的对比争论

关键词:R做数据分析、python数据分析r python 对比

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

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

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

但是,如果你愿意多花些心思更好的利用矢量化编程进行计算,那么无论从程序的长度来是速度上,都会使R的表现有显著性提高。我之前的一个帖子做过这样的比较 ,具体的内容就不重复了。总之,在这样的使用方式下,对大部分运算,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相结合使用。

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

转载请注明:数据分析 » 关于R和python数据分析方面的对比争论

喜欢 (1)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址