专栏首页育种数据分析之放飞自我R语言与独孤九剑以及Python与降龙十八掌

R语言与独孤九剑以及Python与降龙十八掌

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的理解.

结尾语

道路千万条 选择很重要 语言用不对 队友两行泪

本文分享自微信公众号 - 育种数据分析之放飞自我(R-breeding),作者:邓飞2013

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 栾生老师 || 线性混合效应模型教程

    学习线性混合效应模型(Linear Mixed Effects Model,LMM)最好的方法,是一边学习理论,一边动手实践,这样印象最为深刻。本文参考了Bod...

    邓飞
  • R语言中如何写入xlsx的不同sheet表格

    想要实现一个功能, 将不同的数据写入一个Excel中, 不同的数据对应不同的sheet表, 看了一下R语言, 找到的解决方法如下.

    邓飞
  • 混合线性模型如何进行多重比较

    这里,得到的LSD = 6.708889, 多重比较中,用水平的平均值的差值,与LSD比较,如果大于LSD,则认为两水平达到显著性差异。

    邓飞
  • 编程为什么入门首选C语言呢

    为什么入门首选C语言呢 C语言除了能让我们了编程的大门,也让我们了解到程序的运行原理,和计算机底层是如何交互的,这些底层的知识决定了你的高度,也决定了你的未来的...

    企鹅号小编
  • 帮你提升 Python 的 27 种编程语言

    【编者按】本文作者是 Python 的设计者之一 Nick Coghlan,总结了提升 Python 的 27 种编程语言,包括过程式编程、面向对象的数据模型、...

    CSDN技术头条
  • 帮你提升 Python 的 27 种编程语言

    作为全球最流行的编程语言联合设计者之一,我经常看到的一种令人沮丧的行为(在Python社区和其它社区都有),就是那些有影响力的人试图把“缺失”的恐惧感灌输给其它...

    CDA数据分析师
  • 一个程序员写多门语言不会记串么?

    ? 天天敲代码,不知道你有没有想过一个问题:这世界上到底有多少种编程语言? 人类诞生数百万年来,产生了 5000-7000 种语言,而计算机历史只有短短的几...

    腾讯技术工程官方号
  • Anaconda:剪切板数据读取(Python&R)

    Python和R都是免费的开源软件,这类软件有一个对小白新手非常友好的特点,那就是……哪里不会查哪里,随用随学……所以,别的理论不说现在要开始进行数据分析啦~

    二号姬
  • 13个最受欢迎的机器学习Python库

    人工智能的快速发展,让机器学习备受大家欢迎。今天给大家盘点一下最受欢迎的机器学习库(ML):

    人工智能的秘密
  • 荐书与免费送书:《编写高质量代码改善 Python 程序的 91 个建议》

    为了学习如何打理好微信公众号,Python猫我关注了好几个python技术公众号。然后发现这些同行们都在免费送资源,或者抽奖送书耶。于是,我也去参与抽奖,竟然侥...

    Python猫

扫码关注云+社区

领取腾讯云代金券