3

例如 :

currency <- grepl ("currencry" , strsplit("euro currency is a convertible currency"," "), ignore.case=TRUE) 

但它只返回 TRUE 我如何使用这个 grepl 函数计算这个词在这个句子中出现了多少次?

抱歉,我是初学者。提前致谢

4

5 回答 5

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")
于 2013-10-19T09:33:08.513 回答
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
于 2013-10-19T09:01:22.937 回答
3

我会使用gregexpr如下:

lapply(gregexpr("currency", 
                "euro currency is a convertible currency", 
                ignore.case=TRUE), 
       length)
# [[1]]
# [1] 2

(我会确保您正确拼写搜索模式)。

于 2013-10-19T09:02:01.813 回答
0

你也可以使用table

> s <- strsplit("euro currency is a convertible currency", " ")[[1]]
> tab <-table(s)
> tab["currency"]
# currency 
#        2 

这很好,因为您需要存储所有单词的表。您可以查找任何单词,tab["word"]例如

> tab["convertible"]
# convertible
#           1
于 2014-07-05T20:18:18.130 回答
0

你可以使用这个qdap包:

library(qdap)

termco("euro currency is a convertible currency",, "currency")

##   all word.count  currency
## 1 all          6 2(33.33%)
于 2014-07-05T20:01:22.080 回答