0

我有一个包含许多类似 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 将向量中保存的字符串与 data$col1 中包含该字符串的所有行匹配

grep(id, data$col1)

但是,我希望仅从 data$col1 中提取行号,其中包含 id 中的确切字符串(之前/之后没有字符)。我怎样才能做到这一点?

4

1 回答 1

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, ]
于 2013-04-25T08:55:12.290 回答