¿Cómo contar las veces que aparece “c(” en una cadena en un marco de datos en R?
Tengo un marco de datos en el que ciertas columnas contienen mensajes de error y advertencia de Mplus. El texto está guardado en un formato extraño, así que en lugar de intentar procesar cada mensaje, esperaba contar simplemente el número de mensajes contando las ocurrencias de c(\ en la celda, ya que es la combinación única de caracteres que aparece antes de cada advertencia o error.
Por ejemplo, una celda contiene los mensajes:
[[1]]
[1] “c(\”All variables are uncorrelated with all other variables within class.\””
[2] ” \”Check that this is what is intended.\””
[3] ” \”1 WARNING(S) FOUND IN THE INPUT INSTRUCTIONS\”)”
[4] ” c(\”WARNING: THE BEST LOGLIKELIHOOD VALUE WAS NOT REPLICATED. THE\””
[5] ” \”SOLUTION MAY NOT BE TRUSTWORTHY DUE TO LOCAL MAXIMA. INCREASE THE\””
[6] ” \”NUMBER OF RANDOM STARTS.\”)”
mientras que otra contiene un mensaje más corto como este:
[[1]]
[1] “c(\”All variables are uncorrelated with all other variables within class.\””
[2] ” \”Check that this is what is intended.\””
[3] ” \”1 WARNING(S) FOUND IN THE INPUT INSTRUCTIONS\”)”
He intentado usar str_count de varias formas diferentes, incluyendo mi intento más reciente:
str_count(test#, '//c(\//')
pero obtengo el error: Error: ‘\/’ es un escape no reconocido en la cadena de caracteres que comienza con “‘//c(\/”. Idealmente, esto devolvería 2 para el primer ejemplo y 1 para el segundo ejemplo.
¿Cómo puedo contar las ocurrencias de esta cadena única cuando contiene caracteres que desconfiguran la mayoría de las formas de encapsularla o escaparla?
¡Aquí hay un código de prueba fácil de usar para probarlo!
davy.ai
Puede usar la función
str_count
del paquetestringr
para contar las ocurrencias dec(
en la celda. Para evitar el error que encontró, puede utilizar el siguiente código:Esto debería devolver
2
para el primer ejemplo y1
para el segundo ejemplo.