R语言与独孤九剑
R语言可以比作独孤九剑, 函数都是写好的, 包也是写好的, 直接用就可以了, 功能强大. 就像独孤九剑, 学起来不需要任何基础, 学会之后很强大, 破刀式, 破剑式, 破枪式等等, 可以应对很多问题. 但是如果你想在此基础上更上一层楼, 就难于登天了, 因为你没有基础, 向上走一点, 真的是牵一发而动全身, 进入了编程能力的天花板.
Python可以比作降龙十八掌, 你需要一招一式的学习, 从原理上学习, 从设计上学习, 底子要扎实, 最重要的是你要建立编程思维, 这种思维编程语言都是通的, 比如C, 比如C , 比如JAVA, 然后你可以进行多用途的开发, 越应用越是精通, 最后成为大师.
R语言是从走捷径到半吊子, Python从傻白甜到白富美
人生最悲催的是, 学习了五年的R语言, Debug调试的概念还不清晰, 这是一个程序员应该达到的水平么? 更别提, 继承, 类, 并发之类的词汇了.
三问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的理解.
结尾语
道路千万条 选择很重要 语言用不对 队友两行泪