從GEO下載的數(shù)據(jù)的數(shù)據(jù)在進(jìn)行基因名轉(zhuǎn)換的時候俗或,總會出現(xiàn)一些特殊字符市怎,比如
rownames(dat)
這些基因名會和之前的一些有重復(fù),但是在做下一步操作的時候又避免不了出現(xiàn)錯誤辛慰,所以為避免后面出現(xiàn)問題区匠,要在基因名去重之前進(jìn)行處理,去掉' /// ' .如何操作?
搜遍網(wǎng)絡(luò)未發(fā)現(xiàn)類似的教程驰弄。
因為并非所有的基因名都存在' /// ' 所以在進(jìn)行處理的時候麻汰,要注意。
思路
提取含有' /// '
的基因名單獨處理戚篙,但是有的基因是兩個///,有的是一個五鲫,所以在處理的時候還是會遇到那個問題。
使用str_split(rownames(dat),' /// ')
處理后發(fā)現(xiàn)岔擂,得到的是一個list位喂,沒有特殊字符的是list中的一個小對象,有特殊字符的可以拆分成list中的幾個對象乱灵。
轉(zhuǎn)換思路塑崖,我們只需要提取list中每一個character的第一個就可以。
搜索提取list中的對象痛倚,發(fā)現(xiàn)规婆,sapply函數(shù)可以滿足
https://blog.csdn.net/cuiyinpeng2378/article/details/100483333
但是該教程也沒有解釋為什么功能那里寫'['
tmp <- sapply(strsplit(rownames(dat),' /// '),'[',1)
得到character,長度也對得上蝉稳。解決問題聋呢。
小問題的一種解決方案。至于只用分割后前面第一個的基因名對不對颠区,需要自己憑專業(yè)知識自己判斷削锰!