计算给定单词在给定文件中出现的频率,忽略使用R的情况

时间:2013-10-19 08:50:05

标签: r

例如:

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

但它只返回TRUE我如何计算使用这个grepl函数在这句话中出现单词货币的次数?

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

5 个答案:

答案 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