标记包含R中特定单词的查询

时间:2017-04-14 19:51:35

标签: r

以下是我的示例数据集:

query <- c("att plan","att price","attendant","attorney")
order <- c(1,2,3,4)
data <- data_frame(query,order)

我需要创建一个新列&#34; Label&#34;。如果查询包含单词&#34; att&#34;,则应将其标记为&#34; att&#34;。现在我正在使用grepl函数。

data$Label = ifelse(grepl("att",data$query),"att",0)

但是,查询包含&#34;服务员&#34;或&#34;律师&#34;也将被标记。我只想标记&#34;完全匹配&#34;字。

1 个答案:

答案 0 :(得分:1)

您可以使用&#34;字边界&#34;正则表达式的功能:

data$Label <- grepl("\\batt\\b", data$query)
data
# # A tibble: 4 × 3
#       query order Label
#       <chr> <dbl> <lgl>
# 1  att plan     1  TRUE
# 2 att price     2  TRUE
# 3 attendant     3 FALSE
# 4  attorney     4 FALSE

您可能会将其视为\\<\\>,并提供相同的结果:

data$Label2 <- grepl("\\<att\\>", data$query)