Ich möchte mehrere Zeichenfolgen finden und in eine Variable einfügen, jedoch bekomme ich immer Fehler.
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")
Nichts davon funktionierte. Gibt es eine andere Möglichkeit, dies zu tun? str_detect
oder sollte ich noch etwas versuchen? Ich möchte, dass sie auch in derselben Spalte erscheinen.
Antworten:
12 für die Antwort № 1Dies ist eine Möglichkeit, dieses Problem zu lösen:
queries1 <- httpdf %>%
filter(str_detect(payload, paste(c("create", "drop", "select"),collapse = "|")))
1 für die Antwort № 2
Meiner Meinung nach kann die Liste der zu suchenden Strings noch einfacher sein:
queries <- httpdf %>% filter(str_detect(payload, "create|drop|select"))
Da ist eigentlich was
[...]
paste(c("create", "drop", "select"),collapse = "|"))
[...]
tut, wie von @penguin vorher empfohlen.
Für eine längere Liste von Zeichenfolgen, die Sie erkennen möchten, würde ich zuerst die einzelnen Zeichenfolgen in einem Vektor speichern und dann den Ansatz von @penguin verwenden, z.
strings <- c("string1", "string2", "string3", "string4", "string5", "string6")
queries <- httpdf %>%
filter(str_detect(payload, paste(strings, collapse = "|")))
Dies hat den Vorteil, dass Sie den Vektor problemlos verwenden können strings
später auch, wenn Sie wollen oder müssen.