String 计算R中的单词出现次数

String 计算R中的单词出现次数,string,r,String,R,是否有一个函数用于计算数据集中包含特定关键字的次数 例如,如果dataset让我们暂时假设您想要包含“corn”的元素数: 在你更好地掌握了R的基本知识之后,你可能想看看“tm”软件包 编辑:我意识到这一次你想要任何“玉米”,但将来你可能想得到“玉米”这个词。在r-help上,比尔·邓拉普(Bill Dunlap)指出了一种更紧凑的grep模式,用于收集整句话: grep("\\<corn\\>", dataset) grep(“\\”,数据集) 另一种方便直观的方法是使用stri

是否有一个函数用于计算数据集中包含特定关键字的次数


例如,如果
dataset让我们暂时假设您想要包含“corn”的元素数:

在你更好地掌握了R的基本知识之后,你可能想看看“tm”软件包

编辑:我意识到这一次你想要任何“玉米”,但将来你可能想得到“玉米”这个词。在r-help上,比尔·邓拉普(Bill Dunlap)指出了一种更紧凑的grep模式,用于收集整句话:

grep("\\<corn\\>", dataset)
grep(“\\”,数据集)

另一种方便直观的方法是使用
stringr
软件包的
stru count
功能:

library(stringr)
dataset <- c("corn", "cornmeal", "corn on the cob", "meal")

# for mere occurences of the pattern:
str_count(dataset, "corn")
# [1] 1 1 1 0

# for occurences of the word alone:
str_count(dataset, "\\bcorn\\b")
# [1] 1 0 1 0

# summing it up
sum(str_count(dataset, "corn"))
# [1] 3
库(stringr)

dataset您还可以执行以下操作:

length(dataset[which(dataset=="corn")])

我只需要使用字符串除法,比如:

library(roperators)

dataset <- c("corn", "cornmeal", "corn on the cob", "meal")

# for each vector element:
dataset %s/% 'corn'

# for everything:
sum(dataset %s/% 'corn') 
库(索具)

dataset您可以使用stringr包中的stru count函数来获取与给定字符向量匹配的关键字数

str_count函数的pattern参数接受可用于指定关键字的正则表达式

正则表达式语法非常灵活,允许匹配整个单词和字符模式

例如,以下代码将计算字符串“corn”的所有出现次数,并返回3:

sum(str_count(dataset, regex("corn")))
要匹配完整的单词,请使用:

sum(str_count(dataset, regex("\\bcorn\\b")))
“\b”用于指定单词边界。使用str_count函数时,单词边界的默认定义包括撇号。因此,如果您的数据集包含字符串“corn”,那么它将被匹配并包含在结果中

这是因为撇号在默认情况下被视为单词边界。要防止包含撇号的单词被计数,请使用参数为uword=T的regex函数。这将导致正则表达式引擎使用unicode TR 29定义单词边界。看见这个定义不考虑撇号作为词边界。

下面的代码将给出单词“corn”出现的时间。诸如“玉米”之类的词语将不包括在内

sum(str_count(dataset, regex("\\bcorn\\b", uword = T)))

您可以拆分“”上的向量,执行唯一操作,并在整个过程中运行表。:)正确的。这突出了原始问题的模糊性。我不明白为什么4是正确的数字。您的方法将返回2表示“玉米”,1表示“膳食”,1表示“玉米膳食”。计算以空格分隔的单词“corn”的灰色方法可能是:length(grep(“^corn$”^corn$”,dataset)),这是一个拼写错误,对不起。计数是3。也就是说,我投了赞成票,接受了你的回答。再次感谢!虽然我不明白Roman在“”上拆分向量并执行“unique”是什么意思,但我认为他在引号之间键入了一个空格,这会给你一个“整词”列表。按比例显示注释的字体可能会让您认为没有空格。如果您想计算向量成员中出现的次数,此方法会更好。在本例中:
dataset Hi,如果我想使用字典来执行此操作,该怎么办?假设我有字典A,我想知道字典A中的单词在数据集中出现了多少次,(1)相同单词的重复,(2)不同单词的迭代都包含在总和中?我用字典尝试了sum(str_count()),但它只包括字典中唯一单词出现的次数,而不包括单词的重复。听起来像是一个新问题,而不是一个注释。我建议您打开一个新问题,并添加一些代码示例(示例数据、到目前为止尝试过的事情、您希望得到的结果)来勾勒出您的问题,以便易于理解。
sum(str_count(dataset, regex("\\bcorn\\b", uword = T)))