R语言系列7 | 变量类型6-向量6

“ 终于迎来了向量的终章,到这篇文章末为止,大部分代码里的向量操作都难不倒你了,和数据生成以及索引等的操作也都再不是问题,准备好腾飞到矩阵和数据框的世界吧!。”

作为向量部分的终结之章,这篇文章也要讲一些高端上档次的东西,或者说讲一些极其常用的分析操作,比如排序,逆置以及一些其它的东西,最后给大家来一个总结,升华主题,然后进入R矩阵的学习。

Sort和Order

首先,我们的第一部分要讲解的就是关于排序操作的知识。在R语言中,我们常用的排序有两个函数,sort和order函数。其中,sort返回我们排序后的结果,而order函数返回排序后的索引值。

二者都是比较轻便的函数,基本上可以满足简单的排序需求了。

下面先通过案例讲解sort函数

sort函数最基本的用法就是直接给个向量

然后返回递增的结果

sort(c(3,1,6,2,8))
[1] 1 2 3 6 8

如果你想返回递减的结果 请使用参数decreasing=T

sort(c(3,1,6,2,8),decreasing = T)
[1] 8 6 3 2 1

上面我们对数值型向量进行了排序,接下来我们对字符型进行排序

sort(c('bac','bab','aaa','opg'))
[1] "aaa" "bab" "bac" "opg"

通过仔细观测上述结果可以看出来,sort函数对字符串的排序是按照字符的顺序的,如果是多个字符进行排序的话会对字符依次进行排序,然后得到排序的结果并返回。

(别在这扯ascii码,扯多了会让你有些混乱,记住能排序数字和字符就够使了)

!!!!不要把数字和字符放在一个向量进行排序,这是不好的编程习惯!!!!

下面是关于order函数的讲解,这是个非常有意思的函数,它可以返回排序好的索引值,

order函数

order(c(2,4,1,3))
[1] 3 1 4 2

返回递增的索引

order(c(2,4,1,3),decreasing = T)
[1] 2 4 1 3
这里大家可能看的有些懵,可能我的样例取得不太好,我们这样看组一个索引和值的对,2 - 1, 4 - 2, 1 - 3, 3 - 4,后面是我们的索引值,然后排序的话,正确顺序的1 2 3 4,那么对应的索引就是 3 1 4 2 ,是不是和我们的第一返回值相同呢?如果反过来的2 4 3 1 就正好是递减的索引值了,这就是我们的order排序方法。

使用order排序结果

a <- c(2,4,3,1)
a[order(a)]
[1] 1 2 3 4

到这里可能很多人要说我多此一举了,这order和sort不是一个样子吗,还得多写一步浪费时间。我要告诉你并不是这样,比如我现在有一个数据框,想按照p值进行排序,我们使用order生成了排序索引,直接对行进行索引,不就直接得到了排序结果了吗?

逆置向量 - rev

这一部分的内容非常简单粗暴,就像我们的length函数一样。这里的函数名叫逆置向量函数,用大白话说起来就是把一个向量倒过来,这就是逆置。

rev函数

rev(c('a','c','b','r'))
[1] "r" "b" "c" "a"
rev(c(6,9,1,7))
[1] 7 1 9 6
一目了然,这就是逆置函数,简单粗暴的很。而真正的处理过程中,我们有些时候会把数据按照反顺序存进一个向量里,存好后逆置一下就能得到我们要的结果了。

unique和duplicated - 去重

上文讲解了逆置和排序操作,而我们实操的时候还有一个非常非常重要的操作 - 去重。这个名字不说大家也知道,这是非常重要的内容,也是数据分析中必不可少的一部分。

在R的base环境里,我们提供了两个有去重功能的函数,一个是unique,一个是duplicated。

下面给出实例进行讲解,

unique

unique(c(1,2,1,1,2,1))
[1] 1 2
unique(c(1,2,1,1,2,1,3))
[1] 1 2 3
在本章节,unique函数的作用就是这样,帮你找到不重复的值,然后进行输出.

而duplicated则是返回一组布尔值索引,方便你进行后续的操作(针对数据框)

duplicated(c(1,2,1,1,2,1))
[1] FALSE FALSE TRUE TRUE TRUE TRUE
duplicated(c(1,2,1,1,2,1,3))
[1] FALSE FALSE TRUE TRUE TRUE TRUE FALSE
!!!但是我们要注意 这里是索引是重复值的索引 想要不重复的需要使用!符号进行取反操作然后再进行索引!!!

a <- c(a,1,7,3,3,4)

取出重复位置

a[duplicated(a)]
[1] 1 3 3 4

取出非重复位置

a[!duplicated(a)]
[1] 2 4 3 1 7

上面就是关于使用R的基础环境进行去重的操作了!

大总结

最后的最后,给大家的向量之旅进行一个大总结,过于的6篇推文中,我们从向量的创建开始到如何索引向量,增加和删除向量的元素;然后取向量的长度,接下来学习了使用冒号运算符 seq和rep来生成向量;接下来,我们学习到两种非常重要的表示即 NA 和 NULL,然后我们学习了如何对向量中的值进行筛选,使用subset可以跳过缺失值,使用which可以获取索引值。

最后,今天我们学习了最最重要的排序方法,取排序的索引,逆置向量,对向量进行去重操作,取重复值和非重复位置的方法,其中很多方法后面还会有讲解,但是都是以应用为主了。

下一篇的内容将会开始讲解一个有些数学的概念 - 矩阵,在R中,矩阵本身是一种基本的数据类型,具有很多函数和方法来对其进行操作。

如果你喜欢我的文章,请收藏我的文章并且给我个赞,你的支持就是我更新的最大的动力,关注我会有更多惊喜哦,专注于生物信息学以及数据分析入门和进阶教程,也许我给不了你从10-100,但是我可以给你最好的从0-10!

最后,关注我的公众号,领取更多学习资料吧!!!

打开v搜索,”轻松玩转生信“或者从下面文章进去获取二维码关注哦

二维码传送门

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容