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ď č. 1Toto 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.