例如:
currency <- grepl ("currencry" , strsplit("euro currency is a convertible currency"," "), ignore.case=TRUE)
但它只返回TRUE我如何计算使用这个grepl函数在这句话中出现单词货币的次数?
抱歉,我是初学者。提前致谢
答案 0 :(得分:5)
此处无需使用regular expression
:
sum(scan(text="euro currency is a convertible currency",
what="character") == "currency")
## 2
如果你想忽略大小写 - )
sum(scan(text=tolower("euro curreNcy is a convertible currencY"),
what="character") == "currency")
答案 1 :(得分:4)
strsplit
返回一个列表(这样您就可以输入一个字符向量)。你需要先“取消列出”它:
currency <- grepl ("currency" , unlist(strsplit("euro currency is a convertible currency"," ")), ignore.case=TRUE)
currency
[1] FALSE TRUE FALSE FALSE FALSE TRUE
sum(currency)
[1] 2
答案 2 :(得分:3)
我会使用gregexpr
,如下所示:
lapply(gregexpr("currency",
"euro currency is a convertible currency",
ignore.case=TRUE),
length)
# [[1]]
# [1] 2
(我会确保你正确拼写你的搜索模式)。
答案 3 :(得分:0)
您可以使用qdap
包:
library(qdap)
termco("euro currency is a convertible currency",, "currency")
## all word.count currency
## 1 all 6 2(33.33%)
答案 4 :(得分:0)
您也可以使用table
> s <- strsplit("euro currency is a convertible currency", " ")[[1]]
> tab <-table(s)
> tab["currency"]
# currency
# 2
这很好,你需要存储所有单词的表格。您可以使用tab["word"]
查找任何单词,例如
> tab["convertible"]
# convertible
# 1