排序?
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"