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

  面对大量的数据进行分析时,选择一款好的工具或者方法至关重要,节约时间的同时,还能让数据结构清晰明了,在最近几年,用R, Python的人越来越多,于是出现了众多关于用哪个做数据分析最好的争议。

  

  在这里分享一下关于R和python数据分析方面的观点:

  首先,从整体来说,认为数据分析需要的是在有限时间内,用最可行的方式拿到最有用的结果。因此,不应该局限于任何单一的编程方法,而应该是各取所长,根据个人特点,问题的形式而灵活选取或者结合。

  其实,关于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相结合使用。

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

猜你喜欢

转载自blog.csdn.net/qianfeng_dashuju/article/details/83148643