R equivalent of endsWith to check against a list of strings
我正在尝试检查数据帧的列中的值是否以向量中包含的预定义字符串列表中的任何值结尾。我知道可以使用endsWith来检查单个字符串,但是我还没有找到一种使用此方法来检查字符串列表的方法。
1 2 3 | x <- c(" 2"," 3"," II"," III") title <- c("a 2","adbs","ddig","difo 3","fgij III","sdgoij") endsWith(title, x) |
我不希望该代码执行我想要的操作,但是我正在寻找的代码是使用上述数据提供以下输出的代码。
真假真真假
一种选择是循环遍历\\'x \\',将
1 2 | Reduce(`|`, lapply(x, function(y) endsWith(title, y))) #[1] TRUE FALSE FALSE TRUE TRUE FALSE |
另一种选择是
1 2 3 | pat <- paste0("(", paste(x, collapse ="|"),")$") grepl(pat, title) #[1] TRUE FALSE FALSE TRUE TRUE FALSE |