Quiero encontrar varias cadenas y ponerlo en una variable, sin embargo sigo recibiendo errores.

queries <- httpdf %>% filter(str_detect(payload, "create" || "drop" || "select"))
Error: invalid 'x' type in 'x || y'

queries <- httpdf %>% filter(str_detect(payload, "create" | "drop" | "select"))
Error: operations are possible only for numeric, logical or complex types

queries1 <- httpdf %>% filter(str_detect(payload, "create", "drop", "select"))
Error: unused arguments ("drop", "select")

Ninguno de estos trabajado. Hay otra manera de hacerlo con str_detect o debo intentar algo más? Quiero que ellos se muestran como en la misma columna.

  • Supongo que usted necesita paste(c('create', 'drop', 'select'), collapse="|")
  • Parece un duplicado de uno que vi esta mañana.
InformationsquelleAutor Magick.M | 2016-03-12

2 Comentarios

  1. 24

    Esta es una manera de resolver este problema:

    queries1 <- httpdf %>% 
      filter(str_detect(payload, paste(c("create", "drop", "select"),collapse = '|')))
  2. 24

    Incluso de una manera más sencilla, en mi opinión, por su muy corta lista de cadenas que desea encontrar puede ser:

    queries <- httpdf %>% filter(str_detect(payload, "create|drop|select"))

    Como esta realidad es lo que

    […] paste(c("create", "drop", "select"),collapse = '|')) […]

    hace, según lo recomendado por @pingüino antes.

    Para una larga lista de cadenas que se quiere detectar en primer lugar, guarde el único cadenas en un vector y, a continuación, utilice @penguin enfoque, por ejemplo:

    strings <- c("string1", "string2", "string3", "string4", "string5", "string6")
    queries <- httpdf %>% 
      filter(str_detect(payload, paste(strings, collapse = "|")))

    Esto tiene la ventaja de que se puede utilizar fácilmente el vector strings más adelante si así lo desea o tiene que.

    • Esta respuesta muestra de sonido de principios de diseño…dejando de lado variables probable que cambie.

Dejar respuesta

Please enter your comment!
Please enter your name here