R语言 计算字符串中的字数
在这篇文章中,我们将看到如何在R编程语言中计算字符串的字数。
方法1:使用 strplit 和 sapply 方法
R语言中的strsplit()方法用于返回一个包含在指定字符串中的单词的向量,该向量基于与定义的regex匹配。这个向量的每个元素都是原始字符串的一个子串。因此,返回的向量的长度相当于单词的数量。
语法: strsplit( str , regex )
参数 :
- str – 要计算出现次数的字符串
- regex – 包含正则表达式的字符向量(或可强制使用的对象),用于匹配模式。在查找字数的情况下,该模式只相当于””。
sapply()方法: 它用于计算包含单词的向量的长度。sapply()方法用于在向量或列表上应用函数,并返回基于这些计算的输出。如果第二个参数,也就是函数是length,那么将返回分割后的向量的长度。
sapply (str , FUN)
确定复合词的综合方法在R中由以下语法定义。
sapply(strsplit(str, " "), length)
代码
# declaring string
str <- "Counting the words in this R sentence?\
Try this approach in GFG! "
print ("Original string")
print (str)
print ("Total number of words")
# splitting a string by spaces
split <- strsplit(str, " ")
sapply( split , length)
输出
[1] "Original string"
[1] "Counting the words in this R sentence? Try this approach in GFG! "
[1] "Total number of words"
[1] 12
方法2:使用gregexpr方法。
这个方法使用基础R中的各种方法来计算R中特定字符的出现次数。gregexpr()方法用来返回一个与函数参数列表的特定模式相匹配的子列表。在这种情况下,使用的模式匹配是区分大小写的。本例中的模式是 \\W+ 。
语法: gregexpr(pattern, text)
然后应用lengths方法,以返回参数向量中所有元素的单独长度。
语法: lengths(x)
该方法使用正则表达式符号\W来匹配非字字符,使用+来表示一行中的一个或多个。它返回单词之间的分隔符数量,因此在大多数情况下,单词的数量实际上是,分隔符+1。
代码
# declaring string
str <- "Counting the words in this R sentence? \
Try this approach in GFG! "
print ("Original string")
print (str)
print ("Total number of words")
# splitting a string by spaces
lengths(gregexpr("\\W+", str)) + 1
输出
[1] "Original string"
[1] "Counting the words in this R sentence? Try this approach in GFG! "
[1] "Total number of words"
[1] 13
方法3:使用stringr包
R中的stringR包被用来进行字符串操作。它需要明确地安装在工作空间中以访问其方法和例程。
install.packages("stringr")
stringr包提供了一个 str_count() 方法,用来计算作为函数参数指定的某个模式的出现次数。该模式可以是单个字符或一组字符。任何与该表达式匹配的实例都会导致计数的增加。这个方法也可以在一个字符串的向量上调用,并返回一个单独的计数向量,其中包含找到的模式匹配数量的单独计数。然而,这个方法只被认为是近似的重词匹配。如果没有找到匹配项,则返回0。
语法: str_count(str, pattern = “”)
参数:
- str – 要计算出现次数的字符串
- pattern – 要匹配的模式
代码
library("stringr")
# declaring string
str <- "Counting the words in this R sentence? Try this approach in GFG! "
print ("Original string")
print (str)
print ("Total number of words")
# splitting a string by spaces
str_count(str ,"\\W+")
输出
[1] "Original string"
[1] "Counting the words in this R sentence? Try this approach in GFG! "
[1] "Total number of words"
[1] 12