Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中句子的部分匹配词_R_Regex - Fatal编程技术网

R中句子的部分匹配词

R中句子的部分匹配词,r,regex,R,Regex,我希望在R中使用%in%运算符部分匹配字符串,当我在下面运行时,我得到FALSE 'I just want to partial match string' %in% 'partial' FALSE 在上述情况下,预期输出为真,因为它是部分匹配的,因为您希望部分匹配某个句子,您应该尝试使用%like%from data.table,请检查以下内容 library(data.table) 'I just want to partial match string' %like% 'partial

我希望在R中使用%in%运算符部分匹配字符串,当我在下面运行时,我得到FALSE

'I just want to partial match string' %in% 'partial'
 FALSE

在上述情况下,预期输出为真,因为它是部分匹配的

,因为您希望部分匹配某个句子,您应该尝试使用%like%from data.table,请检查以下内容

library(data.table)
'I just want to partial match string' %like% 'partial'
 TRUE

输出结果为真

因为您希望部分匹配句子,所以应该尝试使用%like%from data.table,检查下面的内容

library(data.table)
'I just want to partial match string' %like% 'partial'
 TRUE
`%in_str%` <- function(pattern,s){
  grepl(pattern, s)
}
输出为TRUE

您需要将字符串拆分,使其中的每个单词都是向量中自己的元素:

`%in_str%` <- function(pattern,s){
  grepl(pattern, s)
}
"partial" %in% unlist(strsplit('I just want to partial match string'," "))
[1] TRUE
strsplit获取一个字符串并将其分解为一个由较短字符串组成的向量。在本例中,它在结尾的空格处断开,这样就得到了单个单词的向量。不幸的是,strstring默认将其结果保存为一个列表,这就是为什么我将其包装为一个unlist-因此我们得到一个向量。 然后我们做%in%,它的工作方向与您使用的方向相反:您试图找出字符串partial在句子中是否为%,而不是相反

当然,这是一种恼人的方式,所以如果你想留在base-R中,最好使用基于grep的解决方案,或者上面Priyanka的data.table解决方案-这两种方法在匹配多个字符串等方面也会更好。

您需要对字符串进行strsplite,以便其中的每个单词都是向量中自己的元素:

"partial" %in% unlist(strsplit('I just want to partial match string'," "))
[1] TRUE
strsplit获取一个字符串并将其分解为一个由较短字符串组成的向量。在本例中,它在结尾的空格处断开,这样就得到了单个单词的向量。不幸的是,strstring默认将其结果保存为一个列表,这就是为什么我将其包装为一个unlist-因此我们得到一个向量。 然后我们做%in%,它的工作方向与您使用的方向相反:您试图找出字符串partial在句子中是否为%,而不是相反


当然,这是一种令人恼火的方法,因此,如果您想保持在base-R或上面Priyanka的data.table解决方案内,那么最好使用基于grep的解决方案,这两种解决方案在匹配多个字符串等方面也会做得更好。

请参阅grepl'partial','我只想部分匹配字符串'为什么要使用%in%运算符?这正是格雷普的初衷对不起,我是新手。我在一些教程中看到了%中的%。不确定这两个词之间的区别请参见grepl'partial','I just want to partial match string',为什么要使用%in%运算符?这正是格雷普的初衷对不起,我是新手。我在一些教程中看到了%中的%。不确定这两者之间的区别我不明白这一点,我目前的理解有点超前,是的,现在将坚持上述解决方案。谢谢你的深思熟虑,我在答复中补充了一个解释。真的不是先进的东西。我不遵循这一点,有点先进的我目前的理解,是的,现在将坚持上述解决方案。谢谢你的深思熟虑,我在答复中补充了一个解释。真的不是先进的东西。