类似于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/