I want to find multiple strings and put it in a variable, however I keep getting errors.
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")
None of these worked. Is there another way to do it with str_detect
or should i try something else? I want them to show up as in the same column as well.
An even simpler way, in my opinion, for your quite short list of strings you want to find can be:
queries <- httpdf %>% filter(str_detect(payload, "create|drop|select"))
As this is actually what
[...]
paste(c("create", "drop", "select"),collapse = '|'))
[...]
does, as recommended by @penguin before.
For a longer list of strings you want to detect I would first store the single strings into a vector and then use @penguin's approach, e.g.:
strings <- c("string1", "string2", "string3", "string4", "string5", "string6")
queries <- httpdf %>%
filter(str_detect(payload, paste(strings, collapse = "|")))
This has the advantage that you can easily use the vector strings
later on as well if you want to or have to.