R:如何匹配不以另一个模式开头的模式?

R: How to match a pattern that does not begin with another pattern?

我有一个列,其中包含我想在另一列中用 0 或 1 标识的每个客户的一系列产品。这是一个示例:

products <- c("APV", "SAPV, APV", "SCA, FFMM, APV", "SCA, SAPV", "FFMM, APV", "FFMM", "SCA, SAPV, APV", "SCA, SAPV, FFMM, FFAC", "SCA, FFMM", "SAPV", "SCA", "SCA, APV", "SAPV, FFMM", "SCA, SAPV, FFMM, APV", "SAPV, FFMM, APV")

我想创建一个列名 APV 来标识列表中是否有 APV,但只有 "APV",如果我只使用

grepl("APV", products)

它还会识别 SAPV。

我知道这是一个相对简单的问题,但我做不出来

你需要这样的词界

products <- c("APV", "SAPV, APV", "SCA, FFMM, APV", "SCA, SAPV", "FFMM, APV", "FFMM", "SCA, SAPV, APV", "SCA, SAPV, FFMM, FFAC", "SCA, FFMM", "SAPV", "SCA", "SCA, APV", "SAPV, FFMM", "SCA, SAPV, FFMM, APV", "SAPV, FFMM, APV")
grepl("\bAPV\b", products)

产生

 [1]  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE

查看 expression on regex101.com 的演示。