三问Python哪里比R好?


  • 为什么要这么做呢, R语言不是很好么, 为什么要换语言呢?
  • 如果实现的功能可以用R语言实现, 为什么要替换为Python呢?
  • R语言学好了么, 完全掌握了么? 为什么要换呢? 这不是给自己找麻烦么?

为什么R比Python好?


  • R语言非常博大精深, 里面有很多专业的包, 有各种各样的算法, 处理数据, 清洗数据非常友好和强大, 又加上像​​tidyverse​​, ​​data.table​​这样优秀的包, Python虽然也强大, 但是生物统计或者数量遗传领域, 能用的包比较少, 不信, 你试试方差分析和回归分析, 就可以感觉R语言完爆Python.
  • 用惯了R语言的话, 去接触Python, 各种不适应, 加载一个包还要加载函数, 调用函数时还要写完整. 同样的数据框操作, 写的代码冗长, 实现相同的功能, R语言很容易实现.
  • R语言慢, Python也很慢啊, 如果说R语言, 运行速度慢, 内存占用大是硬伤, 但是Python也不优秀啊, 也是运行的慢, 内存占用大.
  • R包​​data.table​​读取数据, 写入数据, 操作数据框从性能上完败Python, Python哪里好了.

为什么要换为Python?

从很多角度, R语言都不逊于Python, 学习成本来说, 对于科学计算和统计而言, R语言也比Python容易入手.

R语言最大的问题, 在于他太好了, 简单, 容易上手, 入门很简单, 进入大神水平太艰难.

什么都为新手准备好, 读取数据, 存取数据, 画图, 矩阵操作, 数据框操作, 方差分析, 回归分析都非常简单, 一个​​summary​​​, 把所有感兴趣的结果都输出来, 直接可以上报表, 发文章, 一个​​plot(object)​​​, 将图表结果输出. R语言已经将所有的东西简化的不能再简化, 然后各种收费软件(SAS, SPSS, GenStat等等)随着R的普及, 使用量各种减少, R语言在中国的发展也随着​​统计之都​​​, ​​人大经济论坛​​在中国已成为燎原之势, 看一下中国R语言会议就可以知道R在中国使用的盛况.

但是, 当你再想深入学习R语言时, 发现完全找不到北, 比如:


  • 使用R包可以, 尝试自己编写R包呢?
  • R语言有点慢, 学习利用Rcpp进行编程C语言加速呢?
  • R语言爬虫简单, ​​rvest​​很好使用, 想再拓展一些功能呢?
  • ​shiny​​很好用, 想再进一步开发呢?

发现难度非常大, 学习的曲线刚开始进步很大, 等到两年左右, 发现想再进一步学习, 都非常困难, 再接触的领域已经到达了自己能力的边界, 再进步一点, 就要花费很多的精力. 才发现R语言最初的简单, 是一个温柔的陷阱, 为你营造一种R语言很简单, 很强大, 成为了一个宗教, 他不断的亮出各种包, 告诉你他的强大, 最后才发现, 学习了几年的编程, 根本就没有进入编程的大门.

R语言不是一门编程语言, 在这里你学不到编程思想, R是一种宗教, 沉浸于其中, 你感到非常满足, 但是一旦跨出一步, 你就十分没有安全感, 想要看看R中有没有解决方案, 如果R语言可以实现, 为什么要用其它工具呢? 这是一种错觉, 也是自我安慰的错觉.

编写R语言的人, 是一群统计学家, 它的目的在于容易使用, 但是你如果只会使用R, 而没有计算机编程思维, 你不能在R的基础上继续深入学习R, 而是要跳出R语言, 才可以加深对R的理解.

R语言与独孤九剑

R语言可以比作独孤九剑, 函数都是写好的, 包也是写好的, 直接用就可以了, 功能强大. 就像独孤九剑, 学起来不需要任何基础, 学会之后很强大, 破刀式, 破剑式, 破枪式等等, 可以应对很多问题. 但是如果你想在此基础上更上一层楼, 就难于登天了, 因为你没有基础, 向上走一点, 真的是牵一发而动全身, 进入了编程能力的天花板.

Python可以比作降龙十八掌, 你需要一招一式的学习, 从原理上学习, 从设计上学习, 底子要扎实, 最重要的是你要建立编程思维, 这种思维编程语言都是通的, 比如C, 比如C++, 比如JAVA, 然后你可以进行多用途的开发, 越应用越是精通, 最后成为大师.

R语言是从走捷径到半吊子, Python从傻白甜到白富美

人生最悲催的是, 学习了五年的R语言, Debug调试的概念还不清晰, 这是一个程序员应该达到的水平么? 更别提, 继承, 类, 并发之类的词汇了.

结尾语

道路千万条

选择很重要

语言用不对

队友两行泪

我的R-breeding公众号

R语言与独孤九剑_python