Open In App

Count Number of Occurrences of Certain Character in String in R

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will discuss how to count the number of occurrences of a certain character in String in R Programming Language.

Method 1: Using the stringR package

The stringR package in R is used to perform string manipulations. It needs to be explicitly installed in the working space to access its methods and routines. 

install.packages("stringr")

The stringr package provides a str_count() method which is used to count the number of occurrences of a certain pattern specified as an argument to the function. The pattern may be a single character or a group of characters. Any instances matching to the expression result in the increment of the count. This method can also be invoked over a vector of strings, and an individual count vector is returned containing individual counts of the number of pattern matches found. However, this method is only considered approximate of regex matching. In case, no matches are found 0 is returned. 

Syntax: str_count(str, pattern = “”)

Parameters : 

  • str – The string to count the occurrences of
  • pattern – the pattern to match to

Example 1:

R




library(stringr)
 
# declaring string
str1 = "$geeks%for!geeks%"
 
# declaring character to find
ch1 = "a"
print("Count for character a")
str_count(str1,ch1)
 
ch2 = "%"
print("Count for character %")
str_count(str1,ch2)


Output

[1] "Count for character a" 
[1] 0 
[1] "Count for character %" 
[1] 2

Example 2:

R




library(stringr)
 
# declaring string
str = c("$geeks%for!geeks%","cs^e%portal",
        "le%..e3oten","joinnow3")
print ("Original vector")
print (str)
 
# declaring character to find
ch2 = "%"
print("Count for character %")
str_count(str,ch2)


Output

[1] "Original vector"
[1] "$geeks%for!geeks%" "cs^e%portal" "le%..e3oten" "joinnow3"
[1] "Count for character %"
[1] 2 1 1 0

The time complexity is O(n*m), where n is the length of the input vector “str”, and m is the maximum length of a string in the vector.

The auxiliary space is O(n), where n is the length of the input vector “str”. 

Method 2 : Using regmatches() method 

This approach uses a variety of methods available in base R to compute the number of occurrences of a specific character in R. The gregexpr() method is used to return a list of sublists that match a specific pattern of the argument list of the function. The pattern matching used is case-sensitive in this case. 

Syntax:

gregexpr(pattern, text)

This is followed by the application of the regmatches() method in R which is used to extract and then replace the list of matched substrings returned by gregexpr() method. The first argument is the original vector and the second argument is the object returned as a result of the previous method. The lengths() method is then applied in order to return the individual lengths of all the elements of the argument vector. 

Syntax:

lengths(x)

Example 1:

R




# declaring string
str1 = "$geeks%for!geeks%"
 
# declaring character to find
ch1 = "a"
print("Count for character a")
lengths(regmatches(str1, gregexpr(ch1, str1)))
 
ch2 = "%"
print("Count for character %")
lengths(regmatches(str1, gregexpr(ch2, str1)))


Output

[1] "Count for character a"
[1] 0
[1] "Count for character %"
[1] 2

Example 2:

R




# declaring string
str = c("$geeks%for!geeks%","cs^e%portal","le%..e3oten","joinnow3")
print ("Original vector")
print (str)
 
# declaring character to find
ch2 = "%"
print("Count for character %")
lengths(regmatches(str, gregexpr(ch2, str)))


Output

[1] "Original vector"
[1] "$geeks%for!geeks%" "cs^e%portal" "le%..e3oten" "joinnow3"
[1] "Count for character %"
[1] 2 1 1 0


Last Updated : 03 May, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads