我有一个包含许多类似ID和相关信息的数据框:
col1 = c("id_string", "1id_string", "id_string1")
col2 = c("x", "y", "z")
col3 = c("d", "e", "f")
data = data.frame(col1, col2, col3)
我有一个向量(从循环输出),包含一个我希望用于匹配的字符串:
id = "id_string"
我使用grep将向量中保存的字符串与包含字符串的数据$ col1中的所有行匹配
grep(id, data$col1)
但是,我希望只从数据$ col1中提取行号,并在id中保存确切的字符串(之前/之后没有字符)。我怎样才能做到这一点?
答案 0 :(得分:3)
如果必须使用grep
,请尝试
data
## col1 col2 col3
## 1 id_string x d
## 2 1id_string y e
## 3 id_string1 z f
grep(paste0("^", id, "$"), data$col1)
## [1] 1
或者@Arun建议
data[data$col1 == id, ]