以下是我的示例数据集:
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;字。
答案 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)