【发布时间】:2015-12-02 12:29:06
【问题描述】:
我有一个数据框,其中一列有蛋白质 ID 以及一堆无意义的东西,如下图所示。我想要的 id 始终是第 4 到第 9 个字符,所以我想遍历列并提取它们以将它们导出到另一个 csv 文件。该专栏也充满了我不想要的NA。我正在努力在 R 中想出一个循环,它将每次都切出我想要的确切字符,如果有 NA,则什么也不做,然后在找到空白时停止,因为这将是列表的结尾。
列的模拟示例
Prot Id's
sp|IDIDID|PSKSJ_45HELI^sp|IDIDID|FRUEHFJ^HSLHFHG#%$^9y7hiuahl
sp|IDIDID|PSKSJ_45HELI^spuegfuehfw3|IDIDID|FRUEHFJ^HDGFLFHEHFN
NA
NA
sp|IDIDID|PSKSJ_45HELIWUEU^#H63hHU6e^sp|IDIDID|FRUEHFJ^HFGHG:WHFUWH^hfue
NA
sp|IDIDID|PSKSJ_45HELI^spJFBEFBUEBFE|IDIDID|FRUEHFJ^
NA
NA
说 IDIDID 的部分是我想要得到的,任何帮助将不胜感激
【问题讨论】:
-
听起来像
grep解决方案。 -
read.table(text = as.character(dd$Prot_Ids), sep = '|', fill = TRUE)将所有 ID 放入单独的列中