¿Cómo calcular el número de ocurrencias de un carácter en cada fila de R DataFrame?

En este artículo, discutiremos cómo calcular el número de ocurrencias de un carácter dado en cada fila en DataFrame en lenguaje de programación R.

Método 1: Usar el paquete stringr

El paquete stringr en el lenguaje de programación R se puede usar para realizar manipulaciones y extracción de strings, que se pueden instalar en el espacio de trabajo.

El método str_count() se utiliza para devolver la coincidencia del patrón especificado en el vector de strings. Devuelve un vector entero del número de instancias del patrón encontrado en el vector del argumento de entrada. El método str_count() distingue entre mayúsculas y minúsculas. 

Sintaxis:

str_count(string, patrón = “”)

Parámetro: 

  • str: el vector de strings o una sola string para buscar el patrón
  • patrón: el patrón que se va a buscar. Por lo general, una expresión regular.

El patrón puede ser un solo carácter o un grupo de caracteres apilados juntos. Incluso puede contener símbolos o dígitos especiales. En caso de que no se encuentre el patrón, se devuelve un valor entero de 0. 

Ejemplo:

R

# loading the reqd library
library ("stringr")
 
# creating a data frame
data_frame <- data.frame(
  col1 = c(1:5), col2 = c("Geeks","for","geeks","CSE","portal"))
 
# character to search for
ch <- "e"
 
# counting the occurrences of character
count <- str_count(data_frame$col2, ch)
print ("Count of e :")
print (count)

Producción

[1] “Cuenta de e:” 

[1] 2 0 2 0 0

Método 2: Usar el método grepexpr

El método gregexpr() de base R se usa para indicar dónde se encuentra un patrón dentro de un vector de caracteres específico. Se utiliza para devolver un vector de vectores de las posiciones iniciales de la correspondencia con cada componente de la array de caracteres de entrada. La longitud del vector devuelto es equivalente a la longitud del vector de string original. 

Sintaxis:

gregexpr(patrón, string, ignorar.caso=FALSO)

Parámetro:

  • str: el vector de strings o una sola string para buscar el patrón
  • patrón: el patrón que se va a buscar. Por lo general, una expresión regular.
  • ignore.case – Indicador para ignorar el caso o no

Aquí, el patrón es el carácter a buscar y str es la columna de strings para buscar el patrón. El método regmatches() se aplica sobre la salida de esta función, que se usa para extraer o reemplazar las substrings coincidentes del datos coincidentes. En caso de que no se encuentre ninguna coincidencia con el patrón de substring, se devuelve una string vacía. 

Sintaxis:

coincidencias de registro (str, m)

Parámetro: 

  • m: el vector de salida de los datos coincidentes. 

A esto le sigue la aplicación del método lengths(), que devuelve la longitud de cada componente de substring del vector regmatches(). 

Ejemplo:

R

# creating a data frame
data_frame <- data.frame(
  col1 = c(1:5), col2 = c("!?contains","do!es!nt",
                          "Contain","cs!!!e","circus?"))
 
print ("Original DataFrame")
print (data_frame)
 
# character to search for
ch <- "!"
count <- regmatches(
  data_frame$col2, gregexpr(ch, data_frame$col2))
 
print ("Count of !")
 
# returning the number of occurrences
lengths(count)

Producción

[1] «Marco de datos original» 

    col1 col2 

1 1 !? contiene 

2 2 no 

3 3 Contener 

4 4 cs !!! e 

5 5 circo? 

[1] “Cuenta de!” 

[1] 1 2 0 3 0

Método 3: Usar el método sapply

  • El método sapply() en R se usa para aplicar una función definida por el usuario sobre el vector de entrada especificado tomado como primer argumento. La función definida por el usuario, en este caso, consta de una secuencia de pasos:

Sintaxis:

sapply (x, diversión)

  • El método strsplit() se aplica para dividir cada componente del vector de entrada en componentes basados ​​en el delimitador ” ”. Es útil en caso de que una string se componga de varias palabras. Devuelve una array de palabras en cada elemento de la columna.
  • Luego se aplica el método unlist() a cada palabra en un vector de letras, y se verifica si cada letra es equivalente al carácter que deseamos buscar. Luego se aplica el método sum() para incrementar el conteo cada vez que se encuentra una coincidencia.

Sintaxis:

suma ( deslistar( str) == ch)

Ejemplo:

R

# creating a data frame
data_frame <- data.frame(
  col1 = c(1:5), col2 = c("!?contains","do!es!nt",
                          "Contain","cs!!!e","circus?"))
 
print ("Original DataFrame")
print (data_frame)
 
# character to search for
ch <- "!"
count <- sapply(as.character(data_frame$col2),
                function(x, letter = ch){
  str <- strsplit(x, split = "")
  sum(unlist(str) == letter)
})
print ("Count of !")
 
# returning the number of occurrences
print(count)

Producción

[1] «Marco de datos original» 

    col1 col2 

1 1 !? contiene 

2 2 no 

3 3 Contener 

4 4 cs !!! e 

5 5 circo?

[1] “Cuenta de!” 

!?contiene do!es!nt Contiene cs!!!e circus?           

         1 2 0 3 0 

Publicación traducida automáticamente

Artículo escrito por yashkumar0457 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *