/ / Mehrere Zeichenfolgen mit str_detect R - r, Zeichenfolge, Django-Fehlern

Mehrere Strings mit str_detect R - r, string, django-errors

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 № 1

Dies 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.