R语言模糊匹配/字符查找/字符处理/相关报错的解决办法

本文介绍了在R语言中进行模糊匹配和字符查找的方法,包括%in%、grep、grepl和str_detect函数的使用。通过实例展示了如何判断长字符串中是否含有特定短字符串,并解决str_detect可能出现的报错问题。推荐使用grepl函数,因其速度较快且稳定性高。
摘要由CSDN通过智能技术生成

需求描述

为了更方便的进行模糊匹配或者生成标签的工作,经常需要判断“长字符串中是否含有特定的短字符串”,或者查找“长字符串中含有特定的短字符串”的位置,或者判断/查找一连串字符串中是否含有特定的短字符串。

相关函数

%in%

很好用的一个指令,但因为它会把每个字符串当成判断的最小单位,所以不能用来判断/查找“长字符串中是否含有特定的短字符串”

实例

“换装游戏” %in% “其他,换装游戏,二次元卡牌”
[1] FALSE
“换装游戏” %in% c(“其他”,“换装游戏”,“二次元卡牌”)
[1] TRUE

grep

语法:
grep(pattern, x, ignore.case = FALSE, perl = FALSE, value = FALSE, fixed = FALSE, useBytes = FALSE, invert = FALSE);

描述:
在向量x中寻找含有特定字符串(pattern参数指定)的元素,返回其在x中的下标;

Arguments
invert→若设置为TRUE,返回不包含pattern的元素的下标
value→若设置为TRUE,返回相应的元素;

实例

grep(“换装游戏”, “其他,换装游戏,二次元卡牌”)
[1] 1
grep(“换装游戏”, c(“其他”,“换装游戏”,“二次元卡牌”))
[1] 2

grepl

语法:
grepl(pattern, x, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)

描述:
类似grep,但是返回逻辑向量,即是否包含pattern

Arguments
invert→若设置为TRUE,返回不包含pattern的元素的下标
value→若设置为TRUE,返回相应的元素;

实例

grepl(“换装游戏”, “其他,换装游戏,二次元卡牌”)
[1] TRUE

str_detect

描述:
检测一个字符串中,是否包含某个子串,是返回T,否返回F
功能跟grepl一样,但实际使用的时候容易报错,所以不如直接使用grepl

Usage
str_detect(string, pattern, negate = FALSE)

Arguments
string: Input vector. Either a character vector, or something coercible to one.

pattern: Pattern to look for.

negate: If TRUE, return non-matching elements.

Value
A logical vector.

实例

test <- c(“这里有天气热敏感冒”,“好天气”,“感冒了,也要加油”,“感?冒”,"",“不是”,“感冒?不是!”)
str_detect(test,“感冒”)
[1] TRUE FALSE TRUE FALSE FALSE FALSE TRUE

相关报错

str_detect 使用的时候会莫名其妙报如下的错:

Error in stri_detect_regex(string, pattern, negate = neg

  • 11
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值