GEO基因名转换后里面含有' /// '等特殊字符,影响后续操作
2023-02-19 本文已影响0人
努力学习的消炎药
从GEO下载的数据的数据在进行基因名转换的时候,总会出现一些特殊字符,比如
rownames(dat)
![](https://img.haomeiwen.com/i27248116/1a5e51392f2230f0.png)
这些基因名会和之前的一些有重复,但是在做下一步操作的时候又避免不了出现错误,所以为避免后面出现问题,要在基因名去重之前进行处理,去掉' /// ' .如何操作?
搜遍网络未发现类似的教程。
因为并非所有的基因名都存在' /// ' 所以在进行处理的时候,要注意。
思路
提取含有' /// '
的基因名单独处理,但是有的基因是两个///,有的是一个,所以在处理的时候还是会遇到那个问题。
使用str_split(rownames(dat),' /// ')
处理后发现,得到的是一个list,没有特殊字符的是list中的一个小对象,有特殊字符的可以拆分成list中的几个对象。
![](https://img.haomeiwen.com/i27248116/1b3dd046aa0395e8.png)
转换思路,我们只需要提取list中每一个character的第一个就可以。
搜索提取list中的对象,发现,sapply函数可以满足
https://blog.csdn.net/cuiyinpeng2378/article/details/100483333
但是该教程也没有解释为什么功能那里写'['
tmp <- sapply(strsplit(rownames(dat),' /// '),'[',1)
![](https://img.haomeiwen.com/i27248116/6078eb1288efee25.png)
得到character,长度也对得上。解决问题。
小问题的一种解决方案。至于只用分割后前面第一个的基因名对不对,需要自己凭专业知识自己判断!