我想使用str_detect而不是将“”转换为另一个字符串模式。有没有简单的方法来处理空字符串模式“”,该模式现在会生成警告。我希望这产生TRUE,FALSE,FALSE,FALSE,FALSE
library( tidyverse )
str_detect('matt', c( "matt","joe","liz","", NA))
答案 0 :(得分:3)
如果您不受CustomersWithUsers
束缚,可以尝试str_detect()
吗?
grepl()
答案 1 :(得分:2)
我们可以使用
library(stringr)
library(tidyr)
str_detect(replace_na(v1, ''), 'matt')
#[1] TRUE FALSE FALSE FALSE FALSE
如果不匹配子字符串,则%in%
会有用
v1 %in% 'matt'
#[1] TRUE FALSE FALSE FALSE FALSE
v1 <- c( "matt","joe","liz","", NA)
答案 2 :(得分:2)
这是将软件包stringi
作为软件包stringr
的基础的一种方法。
x <- c( "matt","joe","liz","", NA)
stringi::stri_detect_regex(x, 'matt') & !is.na(x)
#[1] TRUE FALSE FALSE FALSE FALSE
必须测试NA
的值,否则stri_detect_*
会返回NA
。
答案 3 :(得分:1)
您也可以这样做-
v1 <- c( "matt","joe","liz","", NA)
sapply(v1, identical, "matt")
输出-
matt joe liz <NA>
TRUE FALSE FALSE FALSE FALSE