/ / Viac reťazcov so str_detect R-r, string, django-chyby

Viacero reťazcov s str_detect R - r, reťazec, django - chyby

Chcem nájsť viac reťazcov a dať ich do premennej, ale stále dostávam chyby.

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")

Nikto z nich nepracoval. Existuje iný spôsob, ako to urobiť str_detect alebo by som mal skúsiť niečo iné? Chcem, aby sa zobrazili rovnako ako v tom istom stĺpci.

odpovede:

12 pre odpoveď č. 1

Toto je spôsob, ako vyriešiť tento problém:

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

1 pre odpoveď č. 2

Ešte jednoduchší spôsob, podľa môjho názoru, pre váš pomerne krátky zoznam reťazcov, ktoré chcete nájsť, môže byť:

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

Ako je to vlastne to, čo

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

robí, ako odporúča @ penguin predtým.

Pre dlhší zoznam reťazcov, ktoré chcete detegovať, by som najprv uložil jednotlivé reťazce do vektora a potom použil prístup @ penguin, napr .:

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

To má tú výhodu, že môžete vektor jednoducho používať strings neskôr, ak chcete alebo musíte.