R語言雜談(四)--排序

排序?

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也是排序但返回的是按從小到大排完后每個數(shù)在原來序列中的位置

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表示抓取,返回的是數(shù)字

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"

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容