前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言从入门到精通:Day6

R语言从入门到精通:Day6

作者头像
用户6317549
发布2019-09-24 17:01:53
7470
发布2019-09-24 17:01:53
举报
文章被收录于专栏:科研猫科研猫
是时候

关注

我们一波了

他来了,他来了,他带着教程走来了~

距离上次R语言系列更新已经过去快一周了,先跟大家说声不好意思,实话实说更新速度的确慢了一点

跟大家解释一下:所有写文章的老师都是我们的一线数据分析师,每日忙于各位学员的data mining case和SCI paper,总是在编辑小姐姐的无数次催促下才能写出教程,更新确实有点慢。不过请大家放心,我们的R语言系列会一直更到底,而且也会提高更新速度哒。

最近经过前面几次推文的学习,我们的R语言教程已经讲解了快1/3的内容,相信大家对R语言已经有了初步的了解,特别是感受了R语言在数据处理领域的强大功能。数据处理是R语言和数据挖掘的重要基础,要求大家务必熟练操作,所以今天我们就从一个简单的实例出发,给大家继续讲解数据处理进阶及控制结构

温馨提示

1、本节内容重点内容较多,

务必紧跟红色标记。

2、测试数据及代码

见文末客服小姐姐二维码。

先看看我们的数据实例:

一组学生参加了一次会考,要求根据学生的所有科目成绩对学生进行排名,将前20%的学生评定为A,接下来20%的学生评定为B,依此类推,最后将学生按姓名字母顺序排序。数据如下:

考试排名对大家一定不是一件陌生的事情,可是这次的排名却有点不一样,因为这三个科目的分值的均值和方差相差太大,如果直接比较总分就太便宜数学好的同学了吧!所以我们要找到将三个科目的分值转化为可比较的单元,然后将学生按成绩排名分类(相信大家还记得前几次教程里面的变量的重编码),最后按照姓名排序,这样就完美的解决了这个难题。本次教程就能帮助大家做到上面说的这些步骤,从简单实例出发,举一反三,初探数据挖掘实例

1、数值和字符的处理函数

R中数据处理的基础函数可以分为数值(数学、统计、概率)函数和字符处理函数,下面分别介绍一下这些函数:

1. 数学函数(掌握)

下面给大家列出了常用的数学函数。

数据处理中数学函数是不可或缺的,上面这些函数也是最常见和常用的一部分函数。它们不仅可以对单个标量使用,也可以作用于向量、矩阵、数据框等,这时函数会分别作用于每个独立的值。这里就不一一举例示范函数的使用了,大家不妨自己动手试一试。

2. 统计函数(掌握)

下面给大家列出常见的统计函数。

如果没有这些函数,我们要求一个数值向量的均值、方差和标准差该怎么办呢?如下图1.

图1:均值和标准差的两种实现

实际上我们还是借用了求和函数,就算如此,代码量也有所增加。上面这些简单而重要的统计函数将会伴随你使用R语言的全部旅程。

3. 概率函数(了解)

数学课上,概率和统计都是放在一起学习的,有一门课程就叫做概统,但是这里我们把概率函数和统计函数分开讲解。

R中,概率函数形如 :

[dpqr]distribution_abbreviation()

其中第一个字母表示其所指分布的某一方面:

d = 密度函数(density)

p = 分布函数(distribution function)

q = 分位数函数(quantile function)

r = 生成随机数(随机偏差)

上过概统课的同学一定不会对上面的数学术语陌生,如果你感到陌生,或许你应该把数学书拿出来复习一下了。

下面是一些常用的概率函数:

下面是正态分布的d、p、q、r四个函数的举例。

图2:正态分布示例

图3:图2代码的结果

上面的例子中,函数pretty()帮我们生成了一个长度为30的范围在-3到3之间的等差数列x,然后用plot()画出了一张-3到3之间的正态分布曲线。函数pnorm()则给出了1.96 左侧的标准正态曲线下方面积,qnorm(0.5)说明标准正态分布的0.5分位点为0(很明显)。rnorm()给出五个符合标准正态分布的随机数。

正态分布的每个函数中都有mean和sd这两个参数,用于非标准正态分布的情形,大家可以查看帮助文档了解。

4. 字符处理函数(掌握)

前面的三类函数都是用于处理数值的,字符处理函数则是用于从文本型数据中抽取信息,或者为打印输出和生成报告重设文本的格式。下面是字符处理函数的一些例子:

表格中提到的正则表达式是一个非常强大的文本模式的匹配语法(学过perl或者python的同学不会陌生,正则表达式在生物信息、网络爬虫等方向的项目中都应用广泛,值得大家学习。后面我们也可以单独讲一下正则表达式的规则和用法)。关于R中的字符串处理,还有一个非常强大的R包,就是stringr包,大家可以自己装一下这个包,运行学习一下。

5. 其他实用函数(掌握)

除了上面提到的这几大类函数,还有一些灵活好用的函数值得一提。

如:seq()rep()、cut()、pretty()等等。在前面的学习过程中其实我们都已经用到了上面这些函数,下面是一些实际的例子。

图4:实用函数举例

当然,这样的函数很多,不可能在这里全部列出来,大家在运用R的时候遇到了很好用的函数也可以拿出来讨论一下。

6. 函数的应用(了解)

R的诸多特点之一,就是R的函数的使用很灵活,不仅可以应用在标量上,也可以照搬到向量、矩阵等高维数据类型。值得一提的是,R提供了apply()函数,可以将任意函数“应用”到任何维度的数据上去。下面是一个示例:

上面的例子中先生成一个6*5的正态随机数矩阵,然后分别对行、列求均值。函数apply()因为其灵活性,功能很强大并且应用广泛,与之类似的还有sapply()和lapply(),主要用于列表上。学习完了这么多函数,大家还记得最开始我们的问题吗,可以尝试解决一下,毕竟学了这么多,会用才是最终目的。需要解答参考代码的同学可以咨询客服小姐姐。

2.控制流

在下一次教程中,我们就要开始讨论R中的图形绘制了,在这之前,有必要给大家多讲讲R语言的函数部分,这里主要给大家介绍一下R语言中的条件语句和循环语句。

1. 重复和循环(掌握)

R语言中的循环主要有for和while两种结构,语法示例如下:

但是R语言中的循环语句效率不高,大型数据集中不太推荐这种用法。Tips: 大型数据集,记得用lapply, sapply, tpply这一类的高级迭代循环哦~

2. 条件执行(了解)

R语言中的条件控制主要有if-else、ifelse、switch三种结构,if-else结构就不举例了,下面是ifelse和switch的两个例子。

图7:条件语句示例

3. 自编函数(了解)

和所有的编程语言一样,用户也可以用R语言编写自定义的函数。其实,我们以后工作学习中用到的很多函数都是别人写好的函数,下面举一个最简单的例子:

图8:自编函数示例

到这里为止,我们介绍的内容已经可以帮助大家做很多基础工作了,下一阶段的内容会主要聚集于图形绘制,相信会给大家有更大的帮助。

小结

加上今天的文章,我们的《R语言从入门到精通》系列已经更新大概1/3的内容了,特别是关于数据操作的基础内容。后面我们会逐步讲解绘图、机器学习及更加高级、更加贴近实战的内容。再给大家鼓鼓气,继续坚持学习,精通R语言指日可待哦!

本期干货

·

!R语言数据操作进阶及控制结构 !

!示例代码 !

原文详情:“科研猫”公众号

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档