我正在尝试在R中使用grep
从巨大的id列表中选择正确的ID。它适用于大多数人,但不适用于其他人。例如,当我使用这个
> grep("cp_gi_88656873.2", names(data), value = T)
[1] "cp_gi_88656873.2" "cp_gi_88656873.29"
它给了我两个id而不是一个。为了使这更加严格,我在查询的末尾添加$
,它可以正常运行
> grep("cp_gi_88656873.2$", names(data), value = T)
[1] "cp_gi_88656873.2"
是否还有其他方法可以解决此问题,而无需将$
添加到ID的末尾?我问这个我有几百个ID,我必须为每一个添加$
。
答案 0 :(得分:1)
您可以在模式的开头和结尾添加\\b
。
grep('\\bcp_gi_88656873.2\\b', v1, value=TRUE)
#[1] "cp_gi_88656873.2"
v1 <- c("cp_gi_88656873.2", "cp_gi_88656873.29")