谈谈如何学习R语言

一、谈谈R语言的历史

R语言的前身是S语言,那么S语言又是什么呢?S语言是由贝尔实验室开发出来的一种用来进行数据探索、统计分析、数据可视化的一门解释性语言。

R语言由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman两人共同发明,由于二者名字中都以R开头,所以这门语言就被命名为R语言了。顺便再提一个对R语言有着突出贡献的人,统计学家哈德利·维克汉姆(Hadley Wickham),如果没有他,绝对不会有R语言蓬勃发展的如今。维克汉姆是 RStudio 的首席科学家,也是斯坦福大学奥克兰分校的副教授,因对R语言的突出贡献,于2019年已获得统计学中的诺贝尔奖–“考普斯会长奖”

R语言由来的趣闻,仅供参考。

二、R语言的现状和前景

当你看到R语言的这篇文章,我可以告诉你,R语言的发展是喜人的,近些年,R语言在统计、金融、生信等领域有了长足的发展。

依然记得谷歌一位大佬说,未来10年,最吃香的专业会是统计学,我深信不疑。(忘记是谁说的了,但是我保证有位谷歌大佬说过这句话:)

大数据、人工智能时代的到来,给R带来了新的机遇。

如果你想看下R语言的现状,可以参考下图。

可以看到,前10名中,R排在第八位。

二、Python 和R的对比

仅以个人的使用感受,做个简单对比。

  1. 语法:我个人以前用从Java到使用Python,觉得Python还是蛮简洁的,自从我用了R,我就觉得Python真的是非常简洁啊,没有对比就没有伤害。我对Python的赞美就不在这多说,但是我对R的吐槽,是真的挺多的,各种看起来非人类的语法,我可以说Python说完胜。

  2. 优势:

    2.1 在数据科学这个领域,以前的R是被Python摁在地上,自从上面那位R语言大神,哈德利.维克汉姆推出了tidyverse系列的包,让R在数据科学领域,有了与R一较高下的实力。

    2.2 在机器学习、深度学习领域,更加没得说,Python拥有目前最完善的各种机器学习包,这是R所不能比的,但是R在近些的发展中,在这个领域也出来了一些比较不错的机器学习包,正在迎头赶上。

    2.3 大数据、工业部署方面,这个方面就不多说了,R对比Python,就是弟弟。不过在大数据领域吧,R也还是有发展,Hadoop,Hive,Spark等相关软件,纷纷开发了适用于R的接口。

    2.4 统计方面,这方面是R的核心大本营,R语言最初就是统计学家开发的,所以R的社区中,有着非常多的统计学家开发的R包,如果你有在统计方面领域的需求,基本都能在R中找到相对于的包,这方面,Python是远不及R的。

    2.5 可视化方面,这方面也是R的长处,ggplot2包,作图能达到专业级别的水准,Python中的库也不弱,matplotlib,seaborn,pyecharts等等。但是总得来说,R语言再可视化方面,要略胜Python一筹。

  3. 如何选择?

    如果你是统计学或者生信这个领域的,R绝对是必学的。

    如果你是做数据科学领域的,R绝对是你的必备技能之一,相信我,不然我也不会学R了。

    左手Python,右手R,小孩子才做选择,成年人选择都要 :)

三、我对R的感受

R语言?臭豆腐罢了,初学时闻起来臭,学好了吃起来香的那种。

R语言的社区非常活跃,有着非常多的开发者在贡献着各种包,但是每个人的开发水平都是良莠不齐的。所以这也导致了R语言各种包和函数的混乱。可以说,这绝对是阻碍R发展的绊脚石之一,它给初学者带来了非常多的困扰。并且很多包,也许你还在书上看到过,但是现在已经过时了,你再学习它,也只是增加学习难度。所以,初学者在学习R的时候,最好找到现在大家都普遍使用的包,在各个领域具有奠基性的包。比如,数据处理领域,可以学习tidyverse系列,可视化方面,ggplot2非常不错。这些包,都是经过了众多学习者考验的包,所以意味着你在碰见问题出错时,寻找问题时,可以在百度上找到更多的资料作为参考。

我也根据我的学习感受,给初学R的朋友做个推荐吧。

R语言的基础教程:可以参考《R语言编程艺术》,简简单单319页,先把R的基础学完,可参考下图。

R语言数据处理:学好tidyverse系列的包,基本就差不多了,我会在下面的章节推荐。

四、学习R的资源

1.《R语言编程艺术》,

​ 推荐理由:学R基础教程不可多得的一本好书,干净利落的那种,非常适合快速入门R语言基础教程的人。

  1. 李东风老师的网站:https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/

    推荐理由:看这域名,我想就不用多解释太多了吧,李东风老师是北大统计系副教授,他所编写的本书,所有的操作教程,基本都是与时俱进的,包括常用的包,可以说是非常新且全面的教程了,而且,配有数据练习,非常nice.

  2. 知乎:张敬信老师个人主页:https://www.zhihu.com/people/huc_zhangjingxin

    推荐理由:如他的主页介绍一样:高校数学教师,热爱学习,热爱编程

    还在愁学R语言的路上没有老师?跟上张老师的步伐,你将收获一位非常nice的R语言老师。

  3. 《R语言实战 第二版》

    推荐理由:R语言书籍中的,圣经,圣经你懂得吧?书绝对是本好书,会跟你讲非常多的细节,但是书中也有很多落伍的包啊,函数的啊什么的,你学了可能也是浪费时间的那种,不过用来作为一本查漏补缺书还是不错的,我之所以不在开头推荐它就是因为它太大了,560页,涵盖各个方面,学习曲线将会非常陡峭。

五、关于学习编程的建议

  1. 动脑子思考,你为什么要学这门语言,它是你职业生涯中的一环吗,还是因为脑子一热呢。
  2. 在学习一门语言之前,先了解了解这门语言的发展,优缺点,适用领域。
  3. 要有学习目标,多听取大佬给的学习路径的建议,会让你少走很多弯路。
  4. 学会找资源,百度,微信,知乎,B站,都是好地方,人与人的差别往往体现在资源的掌控方面。
  5. 学会给自己营造一种学习氛围,比如经常浏览相关内容,以及加入相应的学习群,吹牛逼灌水的那种就别进去了。
  6. 学会解决编程中的常见错误,怎么解决?先查看报错信息,如果你没遇见过这种错误,先检查相应的知识点和代码,如果还是不会,就把报错信息中的关键部分放到百度中去搜索,如果实在找不到答案,就把完整报错信息,以及数据,放到学习群中,说“有没有大佬能帮帮我呢,万分感谢!”,别问“有会R语言的大佬在么”这种蠢话,高效提出问题,往往是高效解决问题的第一步。你解决的每一个问题,都是你进步的阶梯。
  7. 脸皮子要厚,在群里多问,以及给大佬发私信询问建议,这绝对不是坏事。发不发是你的事,别人回答不回答是他的事,发了对你没一点坏处,相反,一旦得到回复,可能对你的帮助将会非常巨大。
  8. 代码、知识点经常回顾,才能抵抗遗忘。不敲代码只看资料或者视频的做法,是最愚蠢的做法。
  9. 学会做人,学会感恩,学会制造彩虹屁。不要一有问题就艾特别人,别人解答完之后,一句谢谢都没有,下次有问题再问别人,别人可能就不会鸟你了。

谈谈如何学习R语言基础教程相关推荐

  1. %3c- r语言运算符,R语言基础教程之运算符

    原标题:R语言基础教程之运算符 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 其他运算符1.算术运算符 下表显示了R语言支持的算术运算符.运算符对向量的 ...

  2. R语言基础教程6:程序设计基础

    R语言基础教程1:数据类型 R语言基础教程2:散点图 R语言基础教程3:曲线图.误差线和图例 R语言基础教程4:柱形图 R语言基础教程5:图形页面排版 R语言基础教程6:程序设计基础 R语言基础教程7 ...

  3. c 语言 字符 r,R语言基础教程之字符串

    原标题:R语言基础教程之字符串 在R中的单引号或双引号中写入的任何值都将被视为字符串.在R内部将每个字符串存储在双引号内,即使您使用单引号创建它们. 适用于字符串构造的规则 字符串开头和结尾的引号应为 ...

  4. R语言基础教程2:循环

    文章目录 repeat while 向量 for循环 break和next repeat repeat是最存粹的循环,只要不让出来,就一直重复{}中的代码,可以在命令行中输入 repeat{print ...

  5. R语言基础教程(1)

    R 语言赋值使用的是左箭头 <- 符号,也支持等号 =. R的版本是4.1.2 > print("Hello World") [1] "Hello World ...

  6. R语言基础知识-学习笔记汇总

    B站课程:生信必备技巧之R语言基础教程全集的代码笔记 1.R语言包安装 rm(list = ls()) # 设置镜像: options()$repos options()$BioC_mirror #o ...

  7. R语言基础学习记录4:重要函数

    时间: 2018-07-18(学习) 2018-07-22(学习记录) 教程:慕课网 <R语言基础> 讲师:Angelayuan 补充内容: R语言常用函数总结大全.gl()函数 学习内容 ...

  8. r语言pls分析_零基础学习R语言分析GEO

    关于零基础用R语言分析GEO的视频已更新完,发布在B站,有兴趣的小伙伴可以移驾到B站,我的B站号:I_am_Becky 之前录制过一系列关于零代码分析GEO数据的,但是这样画出来的图太low了,所以学 ...

  9. R语言基础知识入门学习(一)

    目录 系列文章目录 一.软件下载 二.基本知识 1. 对象 2. 向量 3. 向量化 4. 因子 总结 系列文章目录 R语言基础知识入门学习(一) 一.软件下载 我们可以通过这个网址对R语言软件进行下 ...

  10. R语言基础(用最简单的方式了解学习R语言)

    心灵导语:沮丧的感觉是由大脑的懒造成的,它在提示你放弃做这么难的事情,去找些容易或有趣的事情来做. 学习编程也一样,大脑越是感到沮丧,你越应该鞭策自己去战胜沮丧.认识到这一点之后,在学习编程的过程中, ...

最新文章

  1. python入门须知:包、模块、库的含义以及导入以及包下__init__.py的作用
  2. 使用NeMo快速完成NLP中的信息抽取任务 | 英伟达NLP公开课
  3. ubuntu下安装交叉编译的环境脚本
  4. 将本地SHH文件导入SourceTree配置
  5. maven下载源码linux,Maven 下载 源码和javadoc 命令
  6. JDBC学习笔记之JDBC简介
  7. mc有什么红石机器人_我的世界10月考试!来测测你的MC成绩吧~
  8. js cookie 存储checkbox_[cookie实战记录-1]种下一个cookie
  9. 设计模式:高性能IO之Reactor模式
  10. ionic 父子组件传值
  11. checkValidity()验证输入信息合法性,自定义错误提示信息方法及误区
  12. 1.maven下仅shiro框架对shiro的测试使用
  13. js打开新窗口并且POST传入参数
  14. 论文数模真的好难?那是你还不会Matlab!
  15. openwrt nas_真牛气,矿渣蜗牛星际也能玩软路由Openwrt和NAS虚拟一体机
  16. 2300. 咒语和药水的成功对数 ●●
  17. VUE-amap遇到的坑和总结
  18. openslide read region 出现黑块 解决办法
  19. java listener 模式_Java和GUI-根据MVC模式,ActionListener属于哪里?
  20. 综艺视频素材在哪下?怎么下载综艺高清视频?

热门文章

  1. Linux运维基础知识——开发人员可以掌握的常识
  2. 【Java】恶搞程序实现桌面无限弹窗
  3. DSP28335看门狗复位
  4. 直播app源代码,单例模式
  5. Web项目实战(购物商城项目简单的实现)
  6. java从入门到精通 答案_JAVA从入门到精通习题
  7. 计算机鼠标显示停顿原因,经常遇到鼠标指针停顿卡的解决方法
  8. 软考高级 真题 2017年上半年 信息系统项目管理师 综合知识
  9. 电子公文的七大问题与八大关系(转)
  10. MybatisX代码自动生成