predict函数 R_R语言从入门到精通:Day6

2fe15a93b83c4b92698ea4d4259f1968.png

是时候

关注

我们一波了

148b89511386045d50b9f65c71b362dc.png

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

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

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

温馨提示

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

      务必紧跟红色标记。

2、测试数据及代码

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

先看看我们的数据实例:

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

39d3f1e47a07705f835b32876c1ca22b.png

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

4d3e4cd799d64fcc30ae1a738d984cb0.png 1、数值和字符的处理函数

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

1.  数学函数(掌握)

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

913a8317f09de47feff4df5176c28b9e.png

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

2.  统计函数(掌握)

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

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

6825819fe7a05f77417472bc5566cbd8.png

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

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

3.  概率函数(了解)

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

R中,概率函数形如 :

[dpqr]distribution_abbreviation()

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

d = 密度函数(density)

p = 分布函数(distribution function)

q = 分位数函数(quantile function)

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

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

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

d2c82d4c44603fa2e7d17f5487e07356.png

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

c2a75fa36582247573e231c6c6228888.png

图2:正态分布示例

28e9e77081e73a092036885113c25370.png

图3:图2代码的结果

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

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

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

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

a0d712c7ae518b422e42dde177c18f0e.png

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

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

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

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

ae78f9fcd776e3b11b120c9b30060705.png

图4:实用函数举例

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

6. 函数的应用(了解)

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

b1d81d3c75ed1156094fe7381d9ac95c.png

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

4d3e4cd799d64fcc30ae1a738d984cb0.png2.控制流

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

1.  重复和循环(掌握)

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

6a0f70767091429d677ea0dab2cd5b58.png

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

2.  条件执行(了解)

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

444f6119e2da4291b8ad2aa0c29de179.png

图7:条件语句示例

3. 自编函数(了解)

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

65c68ab0c071d23520f465a3f4889c50.png

图8:自编函数示例

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

bf80191f2770afcbb2ffe0563a1f1041.gif小结

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

本期干货

·

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

!示例代码 !

关注“科研猫”公众号,联系客服

胖雨小姐姐

or

折耳猫小姐姐

领取

c78a1ca9e0e86472fde5221c28ee6086.png

00讲师简介

上海交通大学硕士,MIT博士,长期从事医学与生物信息学研究,主要研究方向为高通量测序在肿瘤早期筛查和无创产前诊断中的临床应用,独立开发多个数据分析软件并发表相关文章(影响因子≥5分6篇,≥10分2篇),熟知R、Python、Perl及C语言等多种编程语言及程序设计,曾累计书写R代码超过5万余行。

下期推文预告

R语言绘图初级

往期热文:

R语言从入门到精通系列

从今天开始,每天学点R语言~  (领取教材)

R语言从入门到精通:Day1     (领取安装包)

R语言从入门到精通:Day2      (领取RStudio操作视频)

R语言从入门到精通:Day3      (领取测试代码)

R语言从入门到精通:Day4       (领取测试代码)

R语言从入门到精通:Day5       (领取测试代码)

科研作图系列

【科研猫·绘图】今夏最热的“热图”(带R代码分享)

【科研猫·绘图】看·箱线图·如何美丽动人(代码分享)

【科研猫·绘图】优雅版·小提琴图(带R代码分享)

【科研猫·绘图】缤纷版·韦恩图(带R代码分享)

【科研猫·绘图】今夏最热的“热图”(带R代码分享)

生存分析系列

【科研猫】生存分析的正确姿势(1)视频+R代码分享

【科研猫·出品】TCGA超大批量生存分析教程

GEO数据挖掘系列

GEO数据库挖掘(1)--SCI文章速成

GEO数据库挖掘(2)--快速锁定目标数据

挖掘GEO速成SCI文章系列教程(3)-R语言基础

重磅:GEO数据库挖掘教程(4)一体化分析代码(带视频+R代码分享)

GO/KEGG功能富集系列

3分钟了解GO/KEGG功能富集分析

干货预警:3分钟搞定GO/KEGG功能富集分析(2)

终极篇:3分钟搞定GO/KEGG功能富集分析-柱状图

终极篇:3分钟搞定GO/KEGG功能富集分析-气泡图

TCGA数据挖掘系列

隔壁实验室的“秃鹫”师兄又发SCI啦--TCGA数据挖掘实战

TCGA数据挖掘终结者:cBioPortal

生物信息入门系列

大咖聊“生信”—生物信息系列(1)

生物信息系列课程-R语言入门

更多科研新鲜资讯、文献精读和生物信息技能,请关注科研猫公众号

下方点好看,更多好看。

2fdf54a751f12dca1d5951030b0cd80b.gif

e062d3acac3795af772a0603de99466d.png

926504124c649373ae6cd1a7708045f7.gif a1550c3052e381864158bedb3af2402d.png

爱我请给我好看!

926504124c649373ae6cd1a7708045f7.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值