这里是从我的数据的一些例子:删除第二个“|”在最后一个位置
a <-c("sp|Q9Y6W5|","sp|Q9HB90|,sp|Q9NQL2|","orf|NCBIAAYI_c_1_1023|",
"orf|NCBIACEN_c_10_906|,orf|NCBIACEO_c_5_1142|",
"orf|NCBIAAYI_c_258|,orf|aot172_c_6_302|,orf|aot180_c_2_405|")
对于一个:个人字符串可以包含更多的条目“SP |”和“ORF”
结果却是这样的:
[1] "sp|Q9Y6W5" "sp|Q9HB90,sp|Q9NQL2" "orf|NCBIAAYI_c_1_1023"
"orf|NCBIACEN_c_10_906,orf|NCBIACEO_c_5_1142"
"orf|NCBIAAYI_c_258,orf|aot172_c_6_302,orf|aot180_c_2_405"
所以,目的是删除最后一个“|”对于每个“sp |”和“orf |”条目。看来“|”是一个特殊的挑战,因为它是正则表达式中的元字符。此外,“orf |”的长度和组成条目差异很大。他们唯一的共同点是“orf |”或“sp |”在开始和那个“|”处于最后位置。我使用gsub()尝试了不同的东西,但也使用了stringr包或regexpr()或[:punct:],但没有任何效果。也许这只是错误的组合。
非常感谢您的帮助。你的建议非常完美。我最好继续增加关于正则表达式的知识以及如何使用它们。:-) – AlRa