我在R中寻找一种搜索特定分隔字符串的方法。 在我的例子中,如果一个单元包含" HDT2"我需要接收TRUE。而不是" HDT21"或" HDT24"等等,因为这个字符串也包含HDT2。
所以现在我正在使用
grepl("HDT2",data.label[d,2])
在for循环中检查第二列data.label的每一行是否为" HDT2"。问题是如果不仅仅是" HDT2"这也会返回TRUE。例如,如果有" HDT21"它也会返回true。或者" HDT24",但这不是我想要的。
有没有办法只检查某个分隔的字符串? 谢谢!
编辑:我必须检查的字符串比#34; HDT2"更长。该字符串例如是" HDT2(第1组:参考)"。
答案 0 :(得分:0)
您可以在grepl()
中使用以下正则表达式。对于"HDT2"
的完全匹配,这将返回true,其前后没有任何内容。
grepl("^HDT2$",data.label[d,2])
<强>用法:强>
> grepl("^HDT2$", "HDT2")
[1] TRUE
> grepl("^HDT2$", "AHDT2")
[1] FALSE
> grepl("^HDT2$", "HDT2 (Arm 1: reference)")
[1] FALSE