R:搜索特定的分隔字符串
我正在寻找一种在R中搜索特定分隔字符串的方法。 在我的示例中,如果一个单元格包含“HDT2”而不是“HDT21”或“HDT24”等等,我需要接收TRUE,因为这个字符串也包含HDT2 所以现在我用的是R:搜索特定的分隔字符串,r,R,我正在寻找一种在R中搜索特定分隔字符串的方法。 在我的示例中,如果一个单元格包含“HDT2”而不是“HDT21”或“HDT24”等等,我需要接收TRUE,因为这个字符串也包含HDT2 所以现在我用的是 grepl("HDT2",data.label[d,2]) 在for循环中,检查第二列data.label的每一行是否为“HDT2”。问题是,如果存在的不仅仅是“HDT2”,那么它也会返回TRUE。例如,如果有“HDT21”或“HDT24”,它也会返回true,但这不是我想要的 有没有办法只检查
grepl("HDT2",data.label[d,2])
在for循环中,检查第二列data.label的每一行是否为“HDT2”。问题是,如果存在的不仅仅是“HDT2”,那么它也会返回TRUE。例如,如果有“HDT21”或“HDT24”,它也会返回true,但这不是我想要的
有没有办法只检查某个带分隔符的字符串?
谢谢
编辑:我必须检查的字符串比“HDT2”长。该字符串例如为“HDT2(臂1:参考)” 您可以在
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
您可以在
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
或wb,
grepl(\\bHDT2\\b),data.label[d,2])
或wb,grepl(\\bHDT2\\b),data.label[d,2])
感谢您的回复!问题是,我必须检查的字符串比“HDT2”长。字符串为“HDT2(臂1:参考)”。如果没有“HDT2”,它似乎不起作用。我只是使用我的答案测试了字符串“HDT2(Arm 1:reference)”
,它返回false
。那有什么问题?谢谢你的回复!问题是,我必须检查的字符串比“HDT2”长。字符串为“HDT2(臂1:参考)”。如果没有“HDT2”,它似乎不起作用。我只是使用我的答案测试了字符串“HDT2(Arm 1:reference)”
,它返回false
。那有什么问题?