R语言概览与学习

[复制链接]
查看: 412|回复: 3

该用户从未签到

0

好友

1

主题

0

精华

LV.1 菜小白

Rank: 1

积分
4
经验
0
学豆
20
发表于 2017-5-2 13:14:09 | 显示全部楼层 |阅读模式
先就业后付费
       随着数据分析的火热,最近遇到很多的程序员都想转行做数据分析,于是就开始学习R语言。总以为有了其他语言的编程背景,学习R语言就是一件很简单的事情,一味地追求速度,但不求甚解,有些同学说2周就能掌握R语言,但掌握的仅仅是R语言的语法,其实这只能算是入门。R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢。本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言

       R语言是一门统计语言,主要用于数学建模、统计计算、数据处理、可视化等几个方向,R语言天生就不同于其他的编程语言。R语言封装了各种基础学科的计算函数,我们在R语言编程的过程中只需要调用这些计算函数,就可以构建出面向不同领域、不同业务的、复杂的数学模型。掌握R语言的语法,仅仅是学习R语言的第一步,要学好R语言,需要你要具备基础学科能力(初等数学,高等数学,线性代数,离散数学,概率论,统计学) + 业务知识(金融,生物,互联网)+ IT技术(R语法,R包,数据库,算法) 的结合。所以把眼光放长点,只有把自己的综合知识水平提升,你才真正地学好R语言。换句话说,一旦你学成了R语言,你将是不可被替代的。
R的知识体系结构概览
      R的知识体系结构是复杂的,要想学好R,就必须把多学科的知识综合运用,所以最大的难点不在于语言本身,而在于使用者的知识基础和综合运用的能力。首先,让我们从宏观上先看一下R的知识体系结构的全貌。
未命名图片.png
注:此图仅仅是我对R语言的理解,不排除由于个人阅历有限,观点片面的问题
R语言基础的知识
蓝图总是宏大和美好的,具体落实也将是困难重重的。接下来,我将会梳理思路,把所有的知识点对应到可操作的文档上,希望帮助大家掌握R语言的全貌!R语言基础的知识,包括R语言的语法,R语言核心包的使用,R语言的内核编程,R语言包的开发,以及R语言的虚拟机。
R语言的语法
语法是我们了解R语言的第一步,和所有人一样,我也在很短的时间就适应R的语法规则,数据结构,基本类型,常用函数等等。
R语言核心包使用
R语言同其他语言一样,在软件启动时,为我们提供了7个核心包,包括了众多的基础函数,如 数学计算函数,统计计算函数,日期函数,包加载函数,数据处理函数,函数操作函数,图形设备函数等。通过search()函数,可以查看到R启动时默认加载7个核心包。
R语言的内核编程
R语言的内核编程,又是一个比较复杂的计算机学科的问题。R的内核编程应该包括哪些内容呢,除了刚才说的R的语法和R的核心包,还有面向对象编程,向量化计算,特殊数据类型,环境空间等。
R语言包的开发
R包的开发,是R语言编程中比较难的,又不得不面对的问题,不仅要把上文中所提到的各种R语言技术综合运用在一起,还要符合R包的开发规范,并用Latex写好文档,最后提交给CRAN发布。技术问题虽然难,花时间还是可以解决的,但想要在CRAN上发布,那就只能用“难于上青天”来形容了。
R语言的虚拟机
终于到我不熟悉话题了,已我3年多R语言使用经验来说,还碰不到R语言的虚拟机。不过,网上看到很多高手在生产环境都会重新编译R软件,比如 用OpenBLAS加速R的矩阵运算,在虚拟机层实现矩阵的并行化计算,也有用GPU实现矩阵并行计算的;还有牛人把R实现的各种算法,都用C++重新实现,然后通过Rcpp封装,直接与R的虚拟机进行连接调用。我看着各种大神走远不送了,希望他们把虚拟机优化好了,免费发布个补丁包什么的。
R语言的第三方包
R语言的第三方包,主要包括了在CRAN上的5000多个第三方包,以及其他社区的R包,这些包在各种领域中都发挥着重要的作用。
数学的基础知识
数学的基础知识,主要包括初等数学,高等数学,线性代数,概率论,统计学等。我们曾在大学中学过的各种数学,那些不知道有什么用,只为考试而学的数学,是能真正决定R语言掌握深度的基础知识。当R语言普及以后,变成大众话的编程语言,入门会越来越容易,第三方包的调用会越来越简单,最后就是拼基础学科功底了,数学就是对所有人来说最难的基础学科。

R语言学习
    邓一硕 写过一篇《R语言书籍的学习路线图》的文章,很有参考意义。文章分别介绍了R语言的初级入门、高级入门、绘图与可视化、计量经济学、时间序列分析和金融等内容,涉及到30多本R语言图书和小册子,但大部分是英文的。随着时间的推移,这两年R语言又增加了好多本新书,中文图书也慢慢地多了起来。对于不同层次的R语言用户,也有了市场细分。
1)入门的朋友可以从《R语言编程艺术》开始学习;
2)有一定R的基础的朋友可以阅读《R语言实战》;
3)需要扩展知识面的朋友可以阅读《R的极客理想-工具篇》;
4)在掌握了各种R的入门技术后,高级的R语言开发者可以阅读《R的极客理想-高级开发篇》(即将出版);
5)用R做可视化的朋友,可以阅读《ggplot2:数据分析与图形艺术》;
6)正在学习统计学的朋友,可以阅读《统计建模与R软件》;
7)准备用R做金融的朋友,可以阅读《时间序列分析及应用(R语言)原书第2版》和《金融数据分析导论(基于R语言)》。
以上推荐的图书,笔者都亲自读过,予以品质保证。此图书列表将不定期更新,把我读到的好书分享给大家!
回复

使用道具 举报

  • TA的每日心情

    2020-8-28 16:30
  • 签到天数: 123 天

    连续签到: 1 天

    [LV.7]常住居民III

    0

    好友

    5

    主题

    0

    精华

    荣耀VIP

    Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

    积分
    4762
    经验
    2193
    学豆
    0

    荣耀VIP

    发表于 2018-5-15 21:22:52 | 显示全部楼层
    课程太棒了,还有可以加入技术交流群,大牛指导学习。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-2-9 14:08
  • 签到天数: 78 天

    连续签到: 2 天

    [LV.6]常住居民II

    0

    好友

    3

    主题

    0

    精华

    荣耀VIP

    Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

    积分
    3560
    经验
    1801
    学豆
    70

    荣耀VIP

    发表于 2018-9-14 22:20:19 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2020-8-28 16:30
  • 签到天数: 123 天

    连续签到: 1 天

    [LV.7]常住居民III

    0

    好友

    5

    主题

    0

    精华

    荣耀VIP

    Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

    积分
    4762
    经验
    2193
    学豆
    0

    荣耀VIP

    发表于 2019-1-10 04:17:21 | 显示全部楼层
    怀疑自己并不可怕,可怕的是一再怀疑自己——沃.兹基硕德
    回复 支持 反对

    使用道具 举报

    快捷回复:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    快速回复 返回顶部 返回列表