R统计另一行字符串中出现的行字符串值

R统计另一行字符串中出现的行字符串值,r,R,在R语言中,寻找一个函数来计算一行值(完整字符串)在另一行值中的出现次数 例如:数据表df df$SerachingFor df$Target df$SearchTermOccurrencesInTarget (required field) Machine rowing machine rowing has two values 1 handy tools handy tools, we have

在R语言中,寻找一个函数来计算一行值(完整字符串)在另一行值中的出现次数 例如:数据表df

df$SerachingFor  df$Target                               df$SearchTermOccurrencesInTarget (required field)
Machine rowing   machine rowing has two values           1
handy tools      handy tools, we have many handy tools   2
plans            home plans, garden plans, DIY plans     3
hospital         home ideas                              0

感谢您的时间

以下是一种利用
stringr
库功能的方法。注意,我将这两列转换为所有小写字母,因为您的示例暗示不区分大小写的匹配

library(stringr)
df$SerachingFor <- tolower(df$SerachingFor)
df$Target <- tolower(df$Target)
df$SearchTermOccurrencesInTarget <- str_count(df$Target, df$SerachingFor)
df
    SerachingFor                                Target SearchTermOccurrencesInTarget
1 machine rowing         machine rowing has two values                             1
2    handy tools  handy tools we have many handy tools                             2
3          plans     home plans garden plans DIY plans                             3
4       hospital                            home ideas                             0
库(stringr)

df$SerachingFor这里是一种使用
stringr
库函数的方法。注意,我将这两列转换为所有小写字母,因为您的示例暗示不区分大小写的匹配

library(stringr)
df$SerachingFor <- tolower(df$SerachingFor)
df$Target <- tolower(df$Target)
df$SearchTermOccurrencesInTarget <- str_count(df$Target, df$SerachingFor)
df
    SerachingFor                                Target SearchTermOccurrencesInTarget
1 machine rowing         machine rowing has two values                             1
2    handy tools  handy tools we have many handy tools                             2
3          plans     home plans garden plans DIY plans                             3
4       hospital                            home ideas                             0
库(stringr)

df$serachingf感谢您的回答,但是在stri_count_regex(string,pattern,opts_regex=attr(pattern,pattern):regexp模式中的语法错误(U_regex_RULE_Syntax)-这里有任何帮助吗?您可以使用
with(df,str_count)(tolower)在不更改原始数据的情况下保存几行代码的情况下完成此操作(Target),tolower(SerachingFor))
。Richard,谢谢你的回答,但是在stri\U count\U REGEX(string,pattern,opts\U REGEX=attr(pattern,:regexp模式中的语法错误)中得到了一个错误。有什么帮助吗?请将您的列读取为因子?如果有,请将数据框列更改为
as.character
。在更完整的数据集中,也可能有一些字符导致了问题。我无法重现该问题。也许您可以打印该列中的唯一字符,看看会发生什么。谢谢您的回答,但是,在stri_count_regex中将错误作为错误获取(string,pattern,opts_regex=attr(pattern,:regexp模式中的语法错误)(U_regex_RULE_语法)-这里的任何帮助都可以做到,而无需更改原始数据,并保存几行代码,使用(df,str_count(tolower(Target),tolower(SerachingFor)))
.Richard,谢谢你的回答,但是在stri\U count\U REGEX中出现了一个错误U\U REGEX\U RULE\U语法错误(字符串,模式,opts\U REGEX=attr(模式,:regexp模式中的语法错误。(U\U REGEX\U RULE\U语法)。有什么帮助吗?请将列读取为因子?如果有,请将数据框列更改为
as.character
。在更完整的数据集中,可能还有一些字符导致了问题。我无法重现该问题。也许您可以打印该列中的唯一字符,看看可能发生了什么。哦,看起来像是d我不喜欢我的问题,但在stri\U count\U regex中尝试以下答案时出错(字符串、模式、opts\U regex=attr(模式:regexp模式中的语法错误)。(U\U regex\U RULE\U语法)哦,看起来有人不喜欢我的问题,但在stri\U count\U regex中尝试以下答案时出错(字符串,模式,opts_regex=attr(模式,:regexp模式中的语法错误。)