在字符串检测中处理空字符串

时间:2019-03-28 14:42:59

标签: r stringr

我想使用str_detect而不是将“”转换为另一个字符串模式。有没有简单的方法来处理空字符串模式“”,该模式现在会生成警告。我希望这产生TRUE,FALSE,FALSE,FALSE,FALSE

library( tidyverse )
str_detect('matt', c( "matt","joe","liz","", NA))

4 个答案:

答案 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