美文网首页
R语言杂谈(四)--排序

R语言杂谈(四)--排序

作者: 爱思考的照 | 来源:发表于2019-11-27 20:53 被阅读0次

    排序 

    sort() #默认是从小到大排序

    sort(a,decreasing=T)#从大到小排序

    举个例子,cat<-c(6 53 16 29 24 78 19 72 65)

    sort(cat)为(6 16 19 24 29 53 65 72 78)

    sort(cat, decreasing=T)为(78 72 65 53 29 24 19 16  6)

    order也是排序但返回的是按从小到大排完后每个数在原来序列中的位置

    order(cat)为(1 3 7 5 4 2 9 8 6)

    cat[order(cat)] 返回的是sort(cat)

    可以通过逻辑值获得我们所需要的队列:cat[cat==78]返回的就是78

    which可以获得所在的位置:which(cat==78)返回的是6

    还能怎么获取位置呢?

    举个例子,我们设定d <- c("TP53","ERBB2","BRCA1")

    ## grep表示抓取,返回的是数字

    grep("ERBB2",d) 返回的是 2 

    ## grepl,表示grep+logical,返回的是逻辑值

    grepl("ERBB2",d) 返回的是FALSE,TRUE,FALSE

    ## 使用逻辑值获取子集

    d[grepl("ERBB2",d)] 返回的是 "ERBB2"

    # 此时跟 %in% 的用法一样,A %in% B 表示A是否存在于B,返回的是逻辑

    "ERBB2" %in% d 返回的是TRUE

    d %in% "ERBB2" 返回的是FALSE TRUE FLASE

    d[d %in% "ERBB2"] 返回的是"ERBB2"

    ## 取交集intersect(x,y) 很常用

    d <- c("TP53","ERBB2","BRCA1")

    e <- c("ERBB2","BRCA1","TP54")

    intersect(d,e) 返回的是 "ERBB2" "BRCA1"

    ## 再试试%in%,操作逻辑是判断d中的每一个元素是否存在于e

    d %in% e 返回的是 FALSE TRUE TRUE

    d[d %in% e] 返回的是 "ERBB2" "BRCA1"

    相关文章

      网友评论

          本文标题:R语言杂谈(四)--排序

          本文链接:https://www.haomeiwen.com/subject/xxsmwctx.html