引言
我最近在做TCGA數(shù)據(jù)分析,在處理中遇到的問題及其收獲取董。主要包括:
case ID 大小寫處理
數(shù)據(jù)的匹配
涉及到的函數(shù)有:
小寫
- tolower
大寫
- toupper
單一的局部匹配
- grep
多個全局匹配
- match
保留固定長度的字符
- substr
大小寫處理
在RANseqGene中case ID 為大寫的匙隔,而Clincial中為小寫的。需要對case ID 做轉(zhuǎn)換。
方案一:大寫變小寫
tolower(colnames(LUAD_RNAseqGene))
方案二:小寫變大寫
toupper(rownames(LUAD_Clinical))
匹配
grep
在找tumor 的case ID 時吏垮,需要采用這個函數(shù)將所有的tumor 找出來铺根。
grep("\\.01A",colnames(LUAD_RNAseqGene))
對于normal的查找類似處理宪躯。
substr
由于case ID 很長,我們只需要前面的12或16個字符來作為識別驗證位迂。
substr(colnames(LUAD_Clinical),1,12) # 保留12位
match
RNA中映射到Clinical中访雪,采用這個函數(shù)
例子
#定義a
> a<-c(1,2,3,4)
#定義b
> b<-c(3,4,5,6,7)
#匹配
> match(a,b)
[1] NA NA 1 2
#a和b中共同的元素
> a[-which(is.na(match(a,b)))]
[1] 3 4
#a和b中共同的元素
> b[match(a,b)]
[1] NA NA 3 4
#a中有的元素而不在b中
> a[is.na(match(a,b))]
[1] 1 2
注:match的結(jié)果長度與a保持一致,NA表示該位置元素不在b中掂林,非NA表示該元素在b中的位置臣缀。