R语言知识体系概览
前言
近遇到很多的程序员都想转行到数据分析,于是就开始学习R语言。总以为有了其他语言的编程背景,学习R语言就是一件很简单的事情,一味地追求速度,但不求甚解,有些同学说2周就能掌握R语言,但掌握的仅仅是R语言的语法,其实这只能算是入门。
R语言的知识体系并非语法这么简单,如果都不了R的全貌,何谈学好R语言呢。本文将展示介绍R语言的知识体系结构,并告诉读者如何才能高效地学习R语言。
目录
- R的知识体系结构
- R语言学习
1. R的知识体系结构
R语言是一门统计语言,主要用于数学建模、统计计算、数据处理、可视化 等几个方向,R语言天生就不同于其他的编程语言。R语言封装了各种基础学科的计算函数,我们在R语言编程的过程中只需要调用这些计算函数,就可以构建出面向不同领域、不同业务的、复杂的数学模型。掌握R语言的语法,仅仅是学习R语言的步,要学好R语言,需要你要具备基础学科能力(初等数学,高等数学,线性代数,离散数学,概率论,统计学) + 业务知识(金融,生物,互联网) + IT技术(R语法,R包,数据库,算法) 的结合。所以把眼光放长点,只有把自己的综合知识水平提升,你才真正地学好R语言。换句话说,一旦你学成了R语言,你将是不可被替代的。
1.1 R的知识体系结构概览
R的知识体系结构是复杂的,要想学好R,就必须把多学科的知识综合运用,所以大的难点不在于语言本身,而在于使用者的知识基础和综合运用的能力。
首先,从宏观上让我们先看一下R的知识体系结构的全貌,然后再分别解释每个部分的细节。
注:此图仅仅是我对R语言的理解,不排除由于个人阅历有限,观点片面的问题。
图中我将R语言知识体系结构分为3个部分:IT技术 + 业务知识 + 基础学科。
- IT技术:是计算时代必备的技术之一,R语言就是一种我们应该要掌握技术。
- 业务知识:是市场经验和法则,不管你在什么公司,都会有自己的产品、销售、市场等,你要了解你的公司产品有什么,客户是谁,怎么才能把产品卖给你的客户。
- 基础学科:是我们这十几年在学校学的理论知识,当初学的时候并不知道是为了什么,毕业后如果你还能掌握一些知识并实际运用,那么这将是你有价值的竞争力。
每个部分知识单独看都有其局限性,但如果能把知识两两结合起来,就构成了我们现在社会的各种技术创新点。
- IT技术+业务知识:创造了阿里巴巴的电子商务帝国,腾讯全生态链的社交网络。
- IT技术+基础学科:创造了Google搜索的神话,华尔街金融不败的帝国。
当然,R语言只是一门计算机语言技术,不能独自承担改写历史的重任,但R语言确实给了我们很大的想像空间,让我们能动手去了解这个世界的规律,找到无穷无尽的交叉点,创造出新的帝国。
如果你和我一样,都能站在这个角度来学习和使用R语言,那么我们一定可以成为并肩向前的同路人。欢迎加入我的团队,我们正在努力改变着未来。
1.2 R语言基础的知识
蓝图总是宏大和美好的,具体落实也将是困难重重的。接下来,我将会梳理思路,把所有的知识点对应到可操作的文档上,希望帮助大家掌握R语言的全貌!
R语言基础的知识,包括R语言的语法,R语言核心包的使用,R语言的内核编程,R语言包的开发,以及R语言的虚拟机。
1.2.1 R语言的语法
语法是我们了解R语言的步,和所有人一样,我也在很短的时间就适应R的语法规则,数据结构,基本类型,常用函数等等。但其实R的语法上坑,远比你知道的多得多。
我举个例子,看谁能准确的回答。比如,基础的符号操作 “=”,”<-","<<-" ,三者有什么区别,分别在什么时候用?不要偷偷说问题太偏了,实际根本用不到。我的代码里处处都在用这3个符号,只是你不知道而已。在学习R的时候,不要用已经掌握的C, Java, Python的经验直接去套R的语法,掉坑里的就是这些人。要重头开始学,一路上没有捷径。 R语言是函数式语言,语法自由,命名自由,使用简单,这只是对于普通用户来说的。作为一个有理想的极客,怎么能只停留在语法上呢!R是完全面向对象的,你了解什么是面向对象吗?R的面向对象打破了R原有的自由,但又要兼容原有的自由语法,多么纠结的设计啊,你能体会到吗?并不是记住了R的语法,就代表掌握了R语言。里面种各坑,只有自己踩了,再自己爬出来,才是真正的成长。 1.2.2 R语言核心包的使用
R语言同其他语言一样,在软件启动时,为我们提供了7个核心包,包括了众多的基础函数,如 数学计算函数,统计计算函数,日期函数,包加载函数,数据处理函数,函数操作函数,图形设备函数等。通过search()函数,可以查看到R启动时默认加载7个核心包。
> search()
[1] ".GlobalEnv" "package:stats" "package:graphics"
[4] "package:grDevices" "package:utils" "package:datasets"
[7] "package:methods" "Autoloads" "package:base"
相关文章