r - 使用 R 中的 str_count 计算整个单词/数字的出现次数

标签 r regex stringr

类似于this在这种情况下,我想用 stringr 包的 str_count 计算句子向量中出现的多个单词和数字的出现次数。

但我注意到不仅要计算整数,还要计算部分数字。例如:

df <- c("honda civic 1988 with new lights","toyota auris 4x4 140000 km","nissan skyline 2.0 159000 km")
keywords <- c("honda","civic","toyota","auris","nissan","skyline","1988","1400","159")
library(stringr)
number_of_keywords_df <- str_count(df, paste(keywords, collapse='|'))

在这里,我收到 number_of_keywords_df 的向量 3、3、3,而显然它应该是 3、2、2。str_count 函数似乎计算数字“140000”中的部分字符串“1400”和“159”和“159000”。有什么办法可以避免吗?

最佳答案

使用 sprintf 您可以添加单词边界:

number_of_keywords_df <- str_count(df, paste(sprintf("\\b%s\\b", keywords), collapse = '|'))
number_of_keywords_df

哪个产量

[1] 3 2 2

关于r - 使用 R 中的 str_count 计算整个单词/数字的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49257263/

相关文章:

r - 将行转换为组合,c()作为r中的向量然后使用向量计算余弦相似度

R:Ruby中有at_exit这样的函数吗?

regex - 从文件结果中提取文件名 ansible

r - 不希望 R 默认将 char 转换为逻辑值

PHP:preg_match_all首先匹配内括号?

regex - 从所选行中删除 vim 中的第一个 N 个字符

r - filter() 和 str_detect() 时找不到列对象

删除整个数据框中的句点/点

r - R:使用str_detect时如何忽略大小写?

r - R 中分层样本的单向方差分析